Android SQLite - новая база данных с другой версией приложения - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть приложение, в котором я использую предоставленную мной базу данных SQLite, поэтому она исправлена, и пользователь ничего не обновит в базе данных.Из этой базы данных будут показаны только результаты.

Проблема в том, что я создаю эту базу данных ТОЛЬКО программно ТОЛЬКО при первом запуске приложения:

  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

    if(!prefs.getBoolean("firstTime", false)) {
        final DatabaseHelper myDb;
        myDb = new DatabaseHelper(this);
        myDb.deltab();
        myDb.insertData("Josh","Smith","012345678","something","something","something");myDb.insertData("Josh","Smith","012345678","something","something","something"); }

    SharedPreferences.Editor editor = prefs.edit();
    editor.putBoolean("firstTime",true);
    editor.apply();

Сначала я удаляю таблицу (только дляубедитесь, что он будет создан с самого начала), а затем я создаю его и вставляю данные.

Это работает нормально при первом запуске приложения.

Но если мне нужно добавить еще данные вэту таблицу в будущем или изменить какие-либо существующие данные в следующей версии приложения, как я могу это сделать?

Если пользователь загружает новую версию приложения, условие firstTime не будет выполняться, потому чтоон уже запустил старое приложение раньше, и при обновлении версии общие настройки не сбрасываются.

1 Ответ

0 голосов
/ 10 декабря 2018

Похоже, вы уже используете SQLiteOpenHelper для управления базами данных (предположим, DatabaseHelper).Это делает вещи проще.Вы можете использовать его для удовлетворения своих потребностей.

  • Потерять проверку при первом запуске SharedPreferences за ненадобностью.Просто настройте свою базу данных в вашем помощнике onCreate().Он запускается один раз, если файл базы данных не существует в устройстве, т.е. «первый запуск».

  • Чтобы обновить старую версию до новой, увеличьте версию базы данных, которую вы 'повторно предоставим конструктору SQLiteOpenHelper и внесем изменения в данные onUpgrade().Он запускается, если был файл базы данных с более старым номером версии.

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