我有一个用于存储用户偏好的应用程序,如下所示:
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) }
总结 以上是内存溢出为你收集整理的如何使用新版本迁移Android偏好设置?全部内容,希望文章能够帮你解决如何使用新版本迁移Android偏好设置?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)