2011-03-30 65 views
0

我在監視Activity生命週期以瞭解更多信息,因此我幾乎在週期的每個方法中都會調用Log.d()Android - 從景觀到肖像的雙生命週期序列

我看特別的順序:

[A]onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - [B]onRestoreInstanceState() 

Activity Lifecycle

開關用Ctrl-F11 2.2 Froyo的仿真器從縱向到橫向我可以看到[A 一個輪]到[B]。

什麼是奇怪,我是切換回從橫向到縱向我可以看到從[A]到[B] 輪。

onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - onRestoreInstanceState() 
onSaveInstanceState() - onPause() - onStop() - onDestroy() - onStart() - onRestoreInstanceState() 

這給我造成了很多保存/恢復活動狀態的問題。

這怎麼可能?爲什麼這樣?

編輯:使用2.3.3薑餅模擬器,序列只運行一次。但2.3.3仿真器有一個已知的錯誤,阻止其正確旋轉!

回答

1

模擬器中的旋轉與加速器旋轉不同。它實際上模擬了一個開放式鍵盤。 這是兩個不同的事件,它們會導致兩個不同的週期循環流。

+1

根據[使用Android模擬器](http://developer.android.com/guide/developing/devices/emulator.html),僅存在Ctrl-F11/F12至「切換到上一個/下一個佈局方向」 。不是加速器旋轉鍵嗎?它怎麼能被仿效?這是什麼「不同的生命週期」流? – 2011-03-30 12:29:37

0

它發生在仿真器上的某些時候,在真實設備上檢查它,它在真實設備上正常工作。