如果我修补 Android 应用程序,我现有的 SQLite 数据库将被删除然后重新创建?
If I patch an Android App, my existing SQLite Database will be deleted and then recreated?
显然我的问题是关于直接更新而不是卸载旧版本然后安装新版本。 Whosebug 上没有讨论它,所以我向大家提问,因为我不知道 Android 在执行更新时做了什么。
如果答案是 "yes, your db will be deleted and then recreated",那么我怎样才能在更新期间不发生这种情况?
谢谢
默认情况下不会删除您的数据库。虽然人们似乎为他们的 SQLiteDatabaseHelper
效仿的一个非常常见的例子是:
void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
// DROP TABLES
}
现在,当您创建一个新的 SQLiteDatabaseHelper
并传入一个比前一个更高的 versionNumber
时,将调用 onUpgrade
并删除表格。如果版本相同,这 不会 发生。同样,如果版本号较低,onDowngrade
也会发生同样的情况。
显然我的问题是关于直接更新而不是卸载旧版本然后安装新版本。 Whosebug 上没有讨论它,所以我向大家提问,因为我不知道 Android 在执行更新时做了什么。
如果答案是 "yes, your db will be deleted and then recreated",那么我怎样才能在更新期间不发生这种情况?
谢谢
默认情况下不会删除您的数据库。虽然人们似乎为他们的 SQLiteDatabaseHelper
效仿的一个非常常见的例子是:
void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
// DROP TABLES
}
现在,当您创建一个新的 SQLiteDatabaseHelper
并传入一个比前一个更高的 versionNumber
时,将调用 onUpgrade
并删除表格。如果版本相同,这 不会 发生。同样,如果版本号较低,onDowngrade
也会发生同样的情况。