Mau*_*lik 11 java database sqlite android android-sqlite
我发现问题在更新应用版本后,在我上传的应用程序中找不到这样的表"table_name".我在测试后出来我只是在将旧版本的应用程序升级到新版本的应用程序之后才遇到此问题
我所实施的内容
我已经在onUpgrade()方法中完成了代码,并且还在构造函数中升级了db版本,但我无法在设备中对其进行测试.
步骤1) 将版本代码1增加到2
public databasehelper(Context context) {
super(context, DATABASE_NAME, null, 2);
this.myContext = context;
try {
createDataBase();
openDataBase();
} catch (IOException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
步骤2)将新表添加到onUpgrade()方法中
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.e("onUpgrade db", ">>>>called");
switch (oldVersion) {
case 1:
db.execSQL(DATABASE_CREATE_notification_counter);
Log.e("db version", ">>>"+oldVersion);
// we want both updates, so no break statement here...
case 2:
Log.e("db version", ">>>"+oldVersion);
// I removed onCreate() method from here because new version will already have the new table
// onCreate(db);
}
}
Run Code Online (Sandbox Code Playgroud)
步骤3) onCreate()方法用于新版本的数据库.
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DATABASE_CREATE_notification_counter);
Log.d("oncreate db", ">>>>called");
}
Run Code Online (Sandbox Code Playgroud)
我有解决方案升级数据库link1 link2 link3 link4
为什么我无法测试它
我们已经在Play商店上传付费应用程序,所以我必须在模拟器或设备中使用两个不同的apk测试db升级方法,这意味着旧版本和更新版本..我已经在设备中第一次使用旧版本然后新版本(db)进行了测试在db)中添加新表的更改但此时不会调用onUpgrade()方法.
题:
1)如何在Play商店更新新版本之前测试db升级?
2)仅在从Play商店更新版本时才会调用?
请帮我解决这个问题.
答案将不胜感激.提前致谢.
| 归档时间: |
|
| 查看次数: |
7700 次 |
| 最近记录: |