歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android 橫豎屏切換時保存數據

Android 橫豎屏切換時保存數據

  1. @Override  
  2.     public Object onRetainNonConfigurationInstance() {  
  3.         final List<String> list1 = list;  
  4.         return list1;  
  5.     }

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

我們可以通過  onRetainNonConfigurationInstance 代替 onSaveInstanceState,

  1. @Override  
  2. public Object onRetainNonConfigurationInstance(){      
  3.     //這裡需要保存的內容,在切換時不是bundle了,我們可以直接通過Object來代替   
  4. }

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

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

然後在onCreate()或取數據的時候寫以下代碼:

  1. final Object data = getLastNonConfigurationInstance();  
  2.     if(data == null){  
  3.     //如果數據為空,就調用該方法獲取數據   
  4.         getImage();  
  5.     }else{  
  6.         //如果不為空,直接取出數據   
  7.         final List<String> list = (List<String>) data;  
  8.     }

這裡提醒大家,每次Activity橫豎屏切換時onCreate方法都會被觸發。

以上處理,在橫豎屏切換時,就不用重新獲取數據,直接顯示切換之前保存的數據。

Copyright © Linux教程網 All Rights Reserved