Android – 儲存使用者的偏好設定 [Preference]
原文
通常手機都是屬於個人專用的東西,
像是玩 GAME, 或是登入某個系統中, 所使用的帳號會改變的機會很小,
以 GAME 為例, 倘若每次玩完後要存下記錄, 每次都要輸入一次自己的名字,
這樣看來似乎不太人性化, 所以可以藉由 Preference 來記錄使用者的偏好設定
通常來說, 要記錄使用者的當前的資料, 不外乎是因為需要離開該 Activity
像是遊戲中, 某人傳來簡訊或是來電,
這個動作會迫使遊戲中斷, 倘若程式沒處理被中斷的這個步驟,
我想開發者的耳朵應該不時都會很癢吧…
所以通常記錄使用者當下的資料的時間點, 就是在被中斷的時候
所以通常都是在 onPause() 或是 onStop() 時觸發,
底下為簡易的程式碼
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
restorePrefs();
}
protected void onPause() {
super.onPause();
storePrefs();
}
// 將資料由 Preferences 取回
private void restorePrefs() {
SharedPreferences settings = getSharedPreferences("PREF_DATA", 0);
String pref_name = settings.getString("NAME", "");
if(!pref_name.equals("")) {
mEditText.setText(pref_name);
}
}
// 將資料存入 Preferences
private void storePrefs() {
SharedPreferences settings = getSharedPreferences("PREF_DATA", 0);
settings.edit()
.putString("NAME", mEditText.getText().toString())
.commit();
} |