2013-06-23 103 views
3

我有一個應用程序,這是一個活動。Android活動生命週期的混亂

一切正常,除非我將手機(三星Galaxy Ace運行薑餅)放在旁邊的按鈕上睡覺。當我這樣做時,以下稱爲(按此順序):

onPause,onStop,onDestroy,onCreate,onStart,onResume,onPause

這是沒有叫醒電話,它仍然睡着了 - 屏幕關閉。

爲什麼活動完全失效並重新創建?

更爲離奇,如果手機再重新開機後會發生以下情況:

的onResume,在onPause,的onStop,onDestroyed,的onCreate,在onStart,的onResume

儘管這是「蓄勢待發'(坐在onPause),它會被殺死並重新創建。

如果應用程序正在運行,然後按Home,則活動僅停止,不會被殺死,一旦停止,我可以讓手機進入休眠狀態,然後再次將其喚醒,並且活動永遠不會中止。它只是去RESTART等......這是我所期望的。

此行爲僅當手機在活動運行時(以及在前臺)處於睡眠狀態時纔會發生。

我已經閱讀了關於Activity生命週期的文檔,但我無法弄清楚爲什麼會出現這種行爲。

+2

你見過多次嗎?我想知道,如果您不小心將手機傾斜,以便在關閉手機時導致方向更改,然後在手機進入睡眠狀態之前對其進行處理。那會導致你看到的。 – HexAndBugs

+0

您好@flightplanner,感謝您的評論,我已經多次嘗試過 - 每次都會發生。此外,我也試着把手機穩定在水平方向,然後垂直方向,這樣做時非常小心,不要傾斜手機。 – Zippy

+0

您的「活動」方向僅設置爲「風景」嗎? –

回答

7

Activity被強制顯示在橫向上(在AndroidManifest.xml中設置)時,我在其他三星設備上的行爲相同。

發生這種情況是因爲設備鎖定屏幕被迫以縱向顯示,而當它位於應用程序的前方時,它會強制您的頂層Activity縱向顯示。

這是沒有什麼可擔心的,也沒有什麼可以改變的。

+0

太棒了 - 謝謝@MaciejGórski,我的確將我的活動強制轉換爲Manifest中的橫向模式,雖然應用程序從頭開始重新開始(從加載屏幕開始),但在其他設備上它只是拾起它離開的位置關閉。感謝至少我知道是什麼造成它,這讓我瘋狂! :-) – Zippy