首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android应用程序安装脚本机制/方法

Android应用程序安装脚本机制/方法
EN

Stack Overflow用户
提问于 2016-06-16 14:35:54
回答 1查看 1.4K关注 0票数 1

android上是否有任何机制和/或编程实践来执行一次性安装/更新脚本?这似乎是一个非常基本的问题,但谷歌搜索并没有帮助。

假设我的应用程序使用数据库,需要有一个常量值表(如国家名称、城市名称等)。App应该创建一个数据库并在其中写入常量值,但是只有当app刚刚安装或更新时才应该这样做。

我是否应该;

( a)在MainActivity中设置一个函数,以检查数据库和数据是否已到位

b)在MainActivity中添加一个函数来编写带有当前软件版本的一小块文件,然后在每次运行时检查它是否是新安装或更新(当然,它将首先检查文件,如果不存在,则将其写入)

( c)或在每次安装和/或更新中是否有任何其他事实上的方法可供运行?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-17 14:09:10

这取决于您将如何安装以及数据库中的更改。

如果您只是生成一个新的Apk并运行它,它将更新而不是删除以前的数据,但如果您删除应用程序并安装新的,数据将被删除。

如果安装的版本低于新应用程序中所需的版本,则需要考虑的其他问题是数据库的版本。

请注意,您需要使用dbhelper.getWriteableDatabase()或dbhelper.getReadableDatabase()获取数据库对象。仅仅创建一个SQLiteOpenHelper对象是不够的。

它的控制取决于您使用什么来创建数据库,例如,如果您使用SQLiteOpenHelper创建这样的方法,则通常使用如下方法:

代码语言:javascript
复制
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {


}

编辑:什么时候调用哪种方法?

关于密码:

代码语言:javascript
复制
DbName = "teste.db"
DbVersion = 1

在设备上:无db

^将调用onCreate.

关于密码:

代码语言:javascript
复制
DbName = "teste.db"
DbVersion = 2

设备上:

代码语言:javascript
复制
 DbName = "teste.db"
 DbVersion = 1

^将调用onUpgrade

关于密码:

代码语言:javascript
复制
DbName = "teste.db"
DbVersion = 1

设备上:

代码语言:javascript
复制
 DbName = "teste.db"
 DbVersion = 2

^将调用onDowngrade

关于密码:

代码语言:javascript
复制
DbName = "anotherName.db"
DbVersion = 1

设备上:

代码语言:javascript
复制
 DbName = "teste.db"
 DbVersion = 1

^将调用onCreate

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37862277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档