如何使用新版本迁移Android偏好设置?

如何使用新版本迁移Android偏好设置?,第1张

概述我有一个用于存储用户偏好的应用程序,如下所示:publicstaticfinalStringKEY_PREFS_LOGIN_INFO="login_info";publicstaticfinalStringKEY_PREFS_FILE_VERSIONs="file_versions";publicstaticfinalStringKEY_PREFS_LOGS="logs";publicstatic

我有一个用于存储用户偏好的应用程序,如下所示:

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偏好设置?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1086826.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存