Android API Demos学习(3) - Persistent State
2810 点击·0 回帖
![]() | ![]() | |
![]() | 关键词: Android 例子展示了关闭程序时怎么持久保存用户偏好。 @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设置光标和选择信息。 @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方法提交保存的信息。 ![]() 切换横竖屏: ![]() | |
![]() | ![]() |