Если у вас есть поставщик данных и вы следовали одному из примеров, возможно, в вашем коде есть DATABASE_VERSION.Наряду с этим, возможно, что-то выглядит следующим образом:
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
LogUtils.w(mContext, "Processor", "Upgrading database from version " + oldVersion + " to "
+ newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS "+REST_TABLE_NAME);
onCreate(db);
}
Это означает, что если вы измените DATABASE_VERSION при обновлении кода, он удалит таблицы и создаст их заново с нуля.Если это то, что происходит, у вас есть два варианта:
1) Не изменяйте DATABASE_VERSION.Конечно, это имеет смысл, только если вы не изменили свою схему, но все готово.
2) Напишите код миграции для onUpgrade.Вы можете проверить старую версию базы данных и написать код для переноса данных в новую схему.Это может быть сложно, но если ваше приложение имеет значительные пользовательские данные, может быть целесообразным.
РЕДАКТИРОВАТЬ: Просто чтобы прояснить, ваше приложение не переустанавливается в этом случае, а потому, что ваша база данныхвоссоздается, данные уничтожаются, поэтому может показаться, что они переустанавливаются.Тем не менее, ваши общие настройки не должны быть затронуты при обновлении.