У меня есть приложение, которое зависит от SQLite для данных, которые заполняются xmls, поставляемыми с приложением в папке с ресурсами.
- При запуске приложения в первый раз он устанавливает общую настройку config_run = false.
- то я проверяю, если config_run = false, затем проанализируйте xml и выгрузите данные в db
- set config_run = true
Теперь я понимаю, что когда я должен нажать обновление в Google Play и добавить больше контента в XML. Несмотря на то, что я изменяю версию базы данных с 1 на 2. Импорт script не будет запущен, потому что значение shared_run для общих настроек будет установлено в true.
Любые указатели на то, как справиться с этой ситуацией?
Сценарии
- First Instal - Ver = 1, DB V = 1 (данные анализируются и сбрасываются в базу данных)
- Ошибки Исправлены и нажмите и обновлены, но данные не изменились - ver = 1.1, DB V = 1 (Он должен просто заменить код, а не обновлять или воссоздавать базу данных)
- Обновлено DATA и вытолкнуто новое обновление - вер. 1.2, DB = 2 (новый код не требуется, но данные необходимо воссоздать)
Поток моего приложения
- Приложение запускает всплеск активности. Если Shared Pref - config_run равно false, то он запускает диалог выполнения и анализирует и выгружает данные в базу данных.
- При анализе и создании БД и демпинге данных он переходит в MainActivity.
Второй случай
- SplashActivity Runs и config_run = true, поэтому непосредственно переходит в MAIN Activity.
Как было предложено несколькими людьми ниже, если я попытаюсь заглушить данные в базе данных в onUpgrade SQLiteHelper, это произойдет только в MAinActivity, поскольку я не открываю соединение Db в SplashActivity и прогресс диалога также не будет отображаться.