我不知道更好的解決方案。 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?所述