Android SharedPreferencesデータアップグレード
2030 ワード
アプリケーション開発では、元の設計のSharedPreferencesの値を変更する必要がある場合、必要に応じて変更する必要があります.この場合、どうすればいいですか?
次の例を見てみましょう.これは私たちの第1版で開発されたものです.
需要またはその他の要因により、元の設計のSharedPreferencesの値を変更する必要があります.
例えばKEY_PICTURE_SIZEは1920 x 1152に変更する必要があります
これは私たちの第2版のコードです.
SharedPreferencesの値を変更する方法を見てみましょう
バージョン番号の更新
現在のバージョンが0の場合は、更新が必要です.
現在のバージョン番号の更新
次の例を見てみましょう.これは私たちの第1版で開発されたものです.
package com.laomou.demo;
import android.content.SharedPreferences;
public class PreferencesUpgrade {
public static final String KEY_LOCAL_VERSION = "pref_local_version_key";
public static final int CURRENT_LOCAL_VERSION = 0;
public static void upgradeLocalPreferences(SharedPreferences pref) {
int version;
try {
version = pref.getInt(KEY_LOCAL_VERSION, 0);
} catch (Exception ex) {
version = 0;
}
if (version == CURRENT_LOCAL_VERSION)
return;
SharedPreferences.Editor editor = pref.edit();
if (version == 0) {
// TODO
version = 1;
}
editor.putInt(KEY_LOCAL_VERSION, CURRENT_LOCAL_VERSION);
editor.apply();
}
}
需要またはその他の要因により、元の設計のSharedPreferencesの値を変更する必要があります.
例えばKEY_PICTURE_SIZEは1920 x 1152に変更する必要があります
これは私たちの第2版のコードです.
public class PreferencesUpgrade {
public static final String KEY_LOCAL_VERSION = "pref_local_version_key";
public static final int CURRENT_LOCAL_VERSION = 1;
public static void upgradeLocalPreferences(SharedPreferences pref) {
int version;
try {
version = pref.getInt(KEY_LOCAL_VERSION, 0);
} catch (Exception ex) {
version = 0;
}
if (version == CURRENT_LOCAL_VERSION)
return;
SharedPreferences.Editor editor = pref.edit();
if (version == 0) {
editor.putString(KEY_PICTURE_SIZE, "1920x1152");
editor.apply();
version = 1;
}
editor.putInt(KEY_LOCAL_VERSION, CURRENT_LOCAL_VERSION);
editor.apply();
}
}
SharedPreferencesの値を変更する方法を見てみましょう
バージョン番号の更新
public static final int CURRENT_LOCAL_VERSION = 1;
現在のバージョンが0の場合は、更新が必要です.
if (version == 0) {
editor.putString(KEY_PICTURE_SIZE, "1920x1152");
editor.apply();
version = 1;
}
現在のバージョン番号の更新
editor.putInt(KEY_LOCAL_VERSION, CURRENT_LOCAL_VERSION);
editor.apply();