android 软件覆盖安装引发的问题
2012-07-21 11:43
417 查看
我们做APP新功能引导的时候,遇到的问题。覆盖安装,数据库表和sharedpreference中的数据都是不会变化的。要注意这一点。
1. 最大的收获当属 覆盖安装 引发的各种问题。
究其原因,能引起覆盖安装问题的最常见原因莫过于数据库表结构的异动(增加一个字段,减少一个字段,甚至是新表的建立)。任何在发版之前修改数据库表结构的行为都是不可取的,即使是很简单的逻辑。
a. 覆盖安装apk文件后,shared_prefs中的数据不会丢失,数据库表中的数据也不会丢失。
b. 升级数据库的方法 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)什么时候会被执行呢?在你做任何的数据库操作之前执行。
而这个时候 public void onCreate(SQLiteDatabase db) 则不再被执行.
比如你想在最新的软件版本中,增加一个字段。你需要这样写:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {
case 23: // 如果我们覆盖的软件版本是23,则执行此分支。
db.beginTransaction();
db.execSQL("Alter table "+Constant.TABLE_DOWNLOAD+" add column " + DownloadColumns.SITE + " VARCHAR");
db.setTransactionSuccessful();
db.endTransaction();
break;
case 22:
break;
}
}
1. 最大的收获当属 覆盖安装 引发的各种问题。
究其原因,能引起覆盖安装问题的最常见原因莫过于数据库表结构的异动(增加一个字段,减少一个字段,甚至是新表的建立)。任何在发版之前修改数据库表结构的行为都是不可取的,即使是很简单的逻辑。
a. 覆盖安装apk文件后,shared_prefs中的数据不会丢失,数据库表中的数据也不会丢失。
b. 升级数据库的方法 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)什么时候会被执行呢?在你做任何的数据库操作之前执行。
而这个时候 public void onCreate(SQLiteDatabase db) 则不再被执行.
比如你想在最新的软件版本中,增加一个字段。你需要这样写:
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
switch (oldVersion) {
case 23: // 如果我们覆盖的软件版本是23,则执行此分支。
db.beginTransaction();
db.execSQL("Alter table "+Constant.TABLE_DOWNLOAD+" add column " + DownloadColumns.SITE + " VARCHAR");
db.setTransactionSuccessful();
db.endTransaction();
break;
case 22:
break;
}
}
相关文章推荐
- 解决android中,通过run as将应用安装到模拟器或真机上总是覆盖原有同名应用问题
- Android应用安装覆盖问题
- [置顶]Win2012R2的一个Bug安装群集后可能引发的软件崩溃问题及相应补丁
- android 覆盖安装问题
- Android-ADASitemap软件安装问题
- 20121027 如何解决在android平台上apk的覆盖安装问题
- Android打包生成的APK安装包,安装后一打开软件就闪退问题
- Android应用覆盖安装时crash问题
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- Android - 覆盖安装APP时出现"应用未安装"问题的解决方案
- Android开发之Genymotion安装第三方软件的“APP not installed”问题
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- android 自动更新 覆盖安装后 自动启动的问题
- 解决在android平台上apk的覆盖安装so文件不覆盖问题
- .Net 转战 Android 4.4 日常笔记(5)--新软件Android Studio 0.5.8安装与配置及问题解决
- Android 解决apk覆盖安装的时候,出现安装失败,与旧版本部兼容的问题
- Win2012R2的一个Bug---安装群集后可能引发的软件崩溃问题及相应补丁
- Eclipse Android安装APP时覆盖安装问题
- android 覆盖安装问题
- 安装软件出错,注册表受限引发的问题的解决办法!