我有一个应用程序,依赖于SQLite进行数据存储,该数据由内置在资产文件夹中的XML文件填充。
- 当您第一次运行应用程序时,它会设置共享首选项config_run = false。
- 然后我检查是否config_run = false,然后解析xml并将数据转储到数据库中
- 设置config_run = true
现在我意识到,当我必须在Google Play上推出更新并添加更多内容到XML中。即使我将数据库版本从1更改为2。导入脚本也不会运行,因为共享的首选项config_run值将被设置为true。
如何处理这种情况?有什么建议吗?
场景
- 第一次安装-Ver = 1,DB V = 1(将解析数据并转储到数据库中)
- 修复错误并推送更新,但未更改任何数据- Ver = 1.1,DB V = 1(应仅替换代码而不升级或重新创建数据库)
- 升级了数据并推送了新更新- ver 1.2,DB = 2(没有新代码,但必须重新创建数据)
我的应用程序流程
- 应用程序启动闪屏活动。如果共享首选项-config_run等于false,则启动进度对话框并解析并将数据转储到数据库中。
- 在解析和创建数据库并转储数据后,转到MainActivity。
第二种情况
- SplashActivity运行,config_run = true,因此直接进入MAin Activity。
正如下面的一些人建议的那样,如果我尝试在SQLiteHelper的onUpgrade中将数据转储到数据库中,它只会在MAinActivity中发生,因为我没有在SplashActivity中打开Db连接,并且Dialog Progress也不会显示。
SQLiteOpenHelper
的onCreate
方法中解析那些资产XML文件,还是手动解析呢? - user