2011-09-23 31 views
4

只有當它們是第一次構建時(而不是在設備旋轉時(配置發生變化)),我纔會在我的Activities的onCreate()方法中執行這些操作。目前我正在檢查傳遞給onCreate()的savedInstanceState參數。如果它是空的,那麼這是第一次活動開始,否則只有一個旋轉。在onCreate中檢查savedInstanceState是否爲一個判斷設備是否旋轉的好方法?

這是一個很好和可靠的方式來告訴這個?這是否有其他選擇?

回答

3

我不知道更好的解決方案。 Romain Guy描述了same approach(檢查savedInstance狀態或其他傳遞給null的對象)。

在新的活動,在的onCreate(),所有你必須做的就是你 對象返回是調用getLastNonConfigurationInstance()。在 照片流,這種方法被調用,如果返回值不是 空,網格裝有照片的列表從以前的 活動:

private void loadPhotos() { 
    final Object data = getLastNonConfigurationInstance(); 

    // The activity is starting for the first time, load the photos from Flickr 
    if (data == null) { 
     mTask = new GetPhotoListTask().execute(mCurrentPage); 
    } else { 
     // The activity was destroyed/created automatically, populate the grid 
     // of photos with the images loaded by the previous activity 
     final LoadedPhoto[] photos = (LoadedPhoto[]) data; 
     for (LoadedPhoto photo : photos) { 
      addPhoto(photo); 
     } 
    } 
} 

當我懶得做,我只是禁用在定位更改上重新創建活動。如How do I disable orientation change on Android?所述

相關問題