Android API Demos學習(2) – Save & Restore State

展示瞭Activity被中止時是怎麼樣保存狀態的。先瞭解幾點知識:
本例通過onSaveInstanceState()來保存UI狀態,onRestoreInstanceState()恢復UI狀態。這個是Activity默認實現的,不需要我們調用。
onSaveInstanceState()不是Activity生命周期的一部分,在用戶明確退出Activity的時候不會執行,比如按Back鍵。
關鍵代碼:
 
<EditText android:id="@+id/saved" 
        android:layout_width="match_parent" android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:background="@drawable/green" 
        android:text="@string/initial_text" 
        android:freezesText="true"> 
        <requestFocus /> 
    </EditText> 
 
<EditText  
        android:layout_width="match_parent" android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:background="@drawable/red" 
        android:text="@string/initial_text"> 
    </EditText> 

一個定義瞭id,一個沒定義,Activity默認隻對定義瞭id的元素保存和恢復狀態。
android:freezesText為true是為瞭保存當前文本內容和光標位置。
<requestFocus />獲得焦點。

旋轉屏幕(模擬器下按Ctrl+F11)後的效果:
 

摘自 小何才露尖尖角
 

發佈留言