Android SharedPreference和应用更新数据库

时间:2018-02-08 07:51:45

标签: android google-play android-sharedpreferences android-database

让我们说我正在将新版应用推向Google Play(17到18)。

某些设备是否有可能将SharedPreference删除?本地数据库怎么样?

我认为如果某个设备以某种方式卸载重新安装应用程序而不是更新,可能会发生这种情况。

注意:我实际上看到在更新后,几个设备上的SharedPreferences被清除了。这就是为什么我想知道为什么,如何以及它也可能发生在数据库中。

1 个答案:

答案 0 :(得分:1)

在您的SQLiteOpenHelper

    @Override
    public void onUpgrade(final SQLiteDatabase db, final int oldVersion, final int newVersion) {
      if (oldVersion < newVersion) {
        final Cursor cursor = db.rawQuery("select name from sqlite_master", null);
        if (cursor != null) {
          while (cursor.moveToNext()) {
            db.execSQL("delete from " + cursor.getString(0));
          }
          cursor.close();
        }
      }
    }