Очистка данных при обновлении приложения (Android)
Как можно удалить все сохраненные ранее SharedPreferences и SQLite Database при обновлении приложения с PlayMarket? Формат сохраненных данных изменился в новой версии, и при установке поверх некоторых из старых версий приложение вылетает, а при чистой установке проблем не наблюдается. Заставить пользователей вручную удалять приложение, а потом устанавливать по-новой, я не могу.
Ответы (1 шт):
Актуально только если исползуется Room
С базой проблема решается просто. Повышаете @Database(version = {цифра больше чем на проде}). Найдите место инициализации базы, вроде:
val builder = Room.databaseBuilder(context, AppDatabase::class.java, "database.db")
и добавьте строчку
builder.fallbackToDestructiveMigration()
Произойдет следующее: в случаи ошибки миграции, схема базы перезапишется на новую без вылетов.
С SharedPreferences чуть сложнее, вам нужно знать имена файлов, которые вы хотите удалить. Но обычно их и не нужно удалять, используйте свои, новые.