Android API Demos學習(3) – Persistent State

例子展示瞭關閉程序時怎麼持久保存用戶偏好。
 @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方法提交保存的信息。

 

切換橫豎屏:

發佈留言