2015-06-18 94 views
-3

我讀了很多關於活動生命週期的內容,但找不到簡單的答案。假設有人按切換應用程序硬件按鈕。當應用切換到不同的應用onPause()保證被調用。同時按返回(關閉應用程序)或首頁將調用onPause()當用戶從最近關閉應用程序時調用onPause()

但是,這是一個問題。當我打開應用程序列表,我可以在應用程序之間切換時,只需點擊按鈕即可調用onPause()?我的意思是隻需點擊切換應用程序調用onPause()

我不清楚,文件沒有描述這種情況。

編輯: 我錯了,說onPause()沒有在按鈕點擊後才被調用。對不起。

+0

@downvoter小心評論我的答案有什麼問題嗎?你在我發佈它的毫秒內立即下降了。 –

+0

@Sharpedge告訴我這件事。 -_- – Galax

+0

「onPause()將不會被調用,直到有人從列表中選擇了一個不同的應用程序爲止」這是錯誤的,至少在我的設備上按下按鈕以顯示應用程序列表時會調用onPause。 – M4rtini

回答

1

onPause()將被調用。在用戶拉起應用程序列表開始刷新應用程序時,任何位於前臺的應用程序都會調用onPause()

0

讓我們假設有人按開關應用程序硬件按鈕。直到有人從列表中選擇不同的應用程序,纔會調用onPause()

你確定當你按下按鈕,讓你選擇其他應用程序不會調用onPause(),直到你選擇一個應用程序?我不信。

+0

它在顯示應用列表之前立即調用onPause。 – Galax

+0

是的,我知道這..那就是我說,OP說,選擇一個應用程序後調用onPause().. –

+1

確實,他錯了:) – Galax

0

應用程序最初將調用的onPause方法出現的應用程序列表中,右鍵之前,而不是在它被滑開(或者即使選擇了另一個應用程序)根據Activity page

0

是onPause()總是在onDestroy()之前調用。它是這樣的:onPaused() - >的onStop() - >的onDestroy()

enter image description here

始終遵循箭頭的方向。無論如何,這些方法都是連續的。像onStop()這樣的方法總是在onPause()之後和onDestroy()之前執行,無論情況如何。

+0

'onPause()'是唯一可以保證被調用的人。 'onStop()'和'onDestroy()'可能不是。 –

+0

我以爲他的意思是他刷了應用程序本身...不是其他應用程序 –

+0

「但是,當我打開應用程序列表,我可以在應用程序之間切換時,我將刷卡應用程序關閉它,將onPause )被調用嗎?我知道在這種情況下總是調用onDestroy(),但在onDestroy()之前總是調用onPause()? - 他在這裏的意思是完全正確的。他意味着他將應用程序本身移開。 –

0

活動生命週期爲總是按文檔中給出的順序調用。含義onCreate>onStart>onResume> >onStop>onDestroy。可能會有一些重複的呼叫,例如在活動進入前臺並移動到後臺時,在onResume和之間來回切換,但它們總是按此順序排列。意思是,如果您確定onDestroy正在被調用,那麼您可以確定和onStop已被調用。

相關問題