2
我有一個應用程序在那裏我存儲這樣的用戶偏好:如何將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";
隨着PREF,具體方法是這樣的:
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()方法的東西。
所以我猜這意味着我必須保持舊的偏好名稱,基本上永遠?但是,也許我應該刪除最後的變量,然後直接放入字符串。你怎麼看? – Cornholio 2013-05-06 11:51:02
爲了支持從舊版本的應用程序遷移,您必須保留舊名稱放在某個地方。但是,將acccess集中到偏好的想法仍然是一個公平的想法,我已經在我發佈的應用中使用過這個想法。 – 2013-05-06 11:53:37
好的,有道理 - 但我還有其他一些問題,但是 - 如果我沒有存儲過舊版本,我怎麼能得到舊的prefs版本?我是否應該爲此版本假設(當然是正確的)我必須升級並且稍後添加一個if子句來檢查版本? – Cornholio 2013-05-06 12:00:11