android - 如何在更新期间迁移 SharedPreferences?

标签 android updates android-preferences migrate

我想将 SharedPreference 从 bool 值更改为字符串。默认值为 true 并将“启用”。这不是问题,因为它会自动设置。但是我如何检查它是否设置为 false 然后将新的 preferece 设置为“禁用”?在更新应用程序期间是否有一种方法可以迁移此首选项? 如果我不迁移它,此首选项的状态将在更新期间丢失...

最佳答案

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();
}

关于android - 如何在更新期间迁移 SharedPreferences?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24303988/

相关文章:

android - 找不到 'ANDROID_HOME' 环境变量。尽管设置正确

android - 升级到windows 10后,Android studio编译不上

c# - 为 XNA C# 游戏制作带有补丁/更新的单文件可视化可定制安装程序

java - 数据截断错误(列 item_code 的数据太长)

android - PreferenceActivity 中的 ClassCastException

android - 对于 Dagger 2,是否可以进行可变构造函数参数注入(inject)?

android - 无法解析 : android. arch.persistence.room :runtime: 1. 0.0-alpha1

c# - 是否可以强制 Windows Phone 更新您的应用程序?

android - 是否可以将数组或对象添加到 Android 上的 SharedPreferences

android - 使用 listpreference 并获取 key 有效但没有确定按钮