如何在更新期间迁移SharedPreferences?

时间:2014-06-19 10:06:32

标签: android updates android-preferences migrate

我想将SharedPreference从Boolean更改为String。默认值为true,将“启用”。这不是问题,因为它会自动设置。但是如何检查它是否设置为false然后将新的优先级设置为“禁用”?是否有更新应用程序期间调用的方法,我可以迁移此首选项? 如果我不迁移它,则在更新期间此偏好的状态将丢失...

2 个答案:

答案 0 :(得分:3)

SharedPreferences preferences = // obtain it
String pref;
try {
    pref = preferences.getString("yourPref", "enabled");
} catch (ClassCastException e) {
    // this means the pref is stored as a boolean
    boolean boolPref = preferences.getBoolean("yourPref", true);
    // store it instead as a String
    pref = boolPref ? "enabled" : "disabled";
    preferences.edit().remove("yourPref").putString("yourPref", pref).commit();
}

答案 1 :(得分:0)

您可以在将要打开的第一个活动中添加一个简单方法,以便为您更新首选项值。另外,添加一个检查,使其仅在第一次执行。