общие предпочтения и проблема с базой данных при обновлении старой версии до новой - PullRequest
0 голосов
/ 17 марта 2020

Когда мы добавляем новые подробности значения ключа общего предпочтения для новой версии android app и Когда мы добавляем столбец в существующую базу данных sqlite в android, он автоматически создает все эти детали, когда старый пользователь обновляется из play-store?

Ответы [ 2 ]

1 голос
/ 17 марта 2020

Общие настройки сохраняются до тех пор, пока вы полностью не удалите приложение.

А что касается базы данных, вы можете вносить в нее изменения. Существует понятие, известное как «миграция базы данных».

Если вы используете Room, это может помочь, https://developer.android.com/training/data-storage/room/migrating-db-versions

Если вы используете простой Sqlite без Room, вы должны внести изменения в onUpgrade() функция,

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  // add Column here
  if (newVersion > oldVersion) {
     db.execSQL("ALTER TABLE foo ADD COLUMN new_column INTEGER DEFAULT 0");
  }
}
1 голос
/ 17 марта 2020

Если вы устанавливаете новую версию существующего приложения, Shared Preferences не выдаст ошибку, но в SQLite вам необходимо изменить версию DB, в противном случае новые изменения не будут отражены, пока вы не переустановите ее снова, но это будет усечь все существующие данные в SQLite. Поэтому лучше изменить версию.

Версия упоминается внутри конструктора вашего класса Database. Например,

 public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, 6);
    mContext = context;
}

В этом 4-м параметре версия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...