微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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 举报,一经查实,本站将立刻删除。

相关推荐