例子展示瞭關閉程序時怎麼持久保存用戶偏好。
@Override
protected void onResume() {
super.onResume();
SharedPreferences prefs = getPreferences(0);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
mSaved.setText(restoredText, TextView.BufferType.EDITABLE);
int selectionStart = prefs.getInt("selection-start", -1);
int selectionEnd = prefs.getInt("selection-end", -1);
if (selectionStart != -1 && selectionEnd != -1) {
mSaved.setSelection(selectionStart, selectionEnd);
}
}
}
1. 在onResume方法中恢復狀態,因為程序要進入運行,必須會執行這個方法。
2. SharedPreferences以key/value的方式保存信息。
3. setSelection設置光標和選擇信息。
www.aiwalls.com
@Override
protected void onPause() {
super.onPause();
SharedPreferences.Editor editor = getPreferences(0).edit();
editor.putString("text", mSaved.getText().toString());
editor.putInt("selection-start", mSaved.getSelectionStart());
editor.putInt("selection-end", mSaved.getSelectionEnd());
editor.commit();
}
1.
在onPause方法中保存狀態,因為不管程序怎麼關閉,都會執行這個方法。
2. onSaveInstanceState()方法中也可以,不過這個方法一般用來保存UI狀態。
3. SharedPreferences.Editor用來保存信息,commit方法提交保存的信息。
切換橫豎屏: