歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android 橫豎屏切換時保存數據

Android 橫豎屏切換時保存數據

日期:2017/3/1 10:19:00   编辑:Linux編程

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