このSharedPreferences.Editor
クラスには、clear()
保存されているすべての設定を削除する関数があります(の後にcommit()
)。更新が必要かどうかを示すブールフラグを作成できます。
void updatePreferences() {
SharedPreferences prefs = ...;
if(prefs.getBoolean("update_required", true)) {
SharedPreferences.Editor editor = prefs.edit();
editor.clear();
/*....make the updates....*/
editor.putBoolean("update_required", false)
editor.commit();
}
}
その後、設定にアクセスする前に、メインの(最初の開始)アクティビティでこれを呼び出す必要があります。
編集:
現在のバージョン(マニフェストで宣言されているversionCode)を取得するには:
int version = 1;
try {
version = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
} catch (NameNotFoundException e) {
e.printStackTrace();
}
if(version > ...) {
//do something
}
編集
バージョンが変更されるたびに更新操作を実行する場合は、次のように実行できます。
void runUpdatesIfNecessary() {
int versionCode = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
SharedPreferences prefs = ...;
if (prefs.getInt("lastUpdate", 0) != versionCode) {
try {
runUpdates();
// Commiting in the preferences, that the update was successful.
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("lastUpdate", versionCode);
editor.commit();
} catch(Throwable t) {
// update failed, or cancelled
}
}
}