public static final String KEY_PREFS_LOGIN_INFO = "login_info";
public static final String KEY_PREFS_FILE_VERSIONs = "file_versions";
public static final String KEY_PREFS_LOGS = "logs";
public static final String KEY_PREFS_OTHERS = "others";
使用像这样的首选方法:
public static void setFiLeversion(String key) {
SharedPreferences settings = getAppContext().getSharedPreferences(KEY_PREFS_FILE_VERSIONS, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("current", key);
editor.commit();
}
然后检索像这样的值:
public static String filesversion() {
SharedPreferences settings = getAppContext().getSharedPreferences(KEY_PREFS_FILE_VERSIONS, 0);
String current = settings.getString("current", "");
return current;
}
我想要做的是将所有首选项都存储在一个位置,因此我可以使用通用方法来访问任何首选项.在升级时,如何设置将值从旧存储位置迁移到新存储位置的方法?我正在寻找类似于sqliteOpenHelper中的onUpgrade()方法的内容.
解决方法:
我会覆盖应用程序.然后在启动时检查您的共享首选项中存储的版本号,然后根据需要执行从任何旧键到新键的遍历.
public class MyApplication extends Application {
private static final int CURRENT_PREFS_VERSION = 2;
@Override
public void onCreate() {
super.onCreate();
if(filesversion() != CURRENT_PREFS_VERSION){
migrate(filesversion())
}
}
private migrate(int oldVersion){
switch(oldVersion){
case 1:
//get old preference, store new preference
break;
}
setFiLeversion(CURRENT_PREFS_VERSION)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。