Android API Demos学习(3) - Persistent State

来源:互联网 发布:苹果免费看书软件 编辑:程序博客网 时间:2024/05/29 04:33
例子展示了关闭程序时怎么持久保存用户偏好。
@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方法提交保存的信息。

切换横竖屏:
原创粉丝点击