Android橫豎屏切換時,保存數據

[java] 
<span style="font-size:12px;"> @Override 
    public Object onRetainNonConfigurationInstance() { 
        final List<String> list1 = list; 
        return list1; 
    }</span> 

Android橫豎屏切換時會觸發onSaveInstanceState,而還原時會產生onRestoreInstanceState,但是Android的Activity類還有一個方法名為onRetainNonConfigurationInstance和getLastNonConfigurationInstance這兩個方法。

我們可以通過  onRetainNonConfigurationInstance 代替 onSaveInstanceState,

[java] 
<span style="font-size:12px;">@Override 
public Object onRetainNonConfigurationInstance(){     
    //這裡需要保存的內容,在切換時不是bundle瞭,我們可以直接通過Object來代替 
}</span> 

在恢復窗口時,我們可以不使用 onRestoreInstanceState,而代替的是 getLastNonConfigurationInstance 方法。我們可以直接在onCreate中使用(隻能再onCreate中使用),比如:

下面是保存list集合類型數據的實例:
  

然後在onCreate()或取數據的時候寫以下代碼:
  
[java] 
<span style="font-size:12px;"> final Object data = getLastNonConfigurationInstance(); 
    if(data == null){ 
    //如果數據為空,就調用該方法獲取數據 
        getImage(); 
    }else{ 
        //如果不為空,直接取出數據 
        final List<String> list = (List<String>) data; 
    }</span> 

這裡提醒大傢,每次Activity橫豎屏切換時onCreate方法都會被觸發。
以上處理,在橫豎屏切換時,就不用重新獲取數據,直接顯示切換之前保存的數據。

作者:huweilong1030

發佈留言