在Andoid Acitivity生命週期中,爲什麼活動在去onStopped()
之前經過onPause()
?爲什麼國家不能直接進入onStopped()
?onPause()在活動生命週期中的onStopped()之前
3
A
回答
2
因爲documentation是這麼說的:-)
而且它是有道理的。該應用程序已打開,用戶按下主頁按鈕:onPause()
被調用。一段時間後系統需要內存並關閉應用程序:onStop()
被調用。
0
因爲onPaused()會在您的應用程序旋轉或對話框打開時執行。 onStop()當你的應用程序不在屏幕上時,需要在生命週期中向用戶或程序員的這兩點指出要執行的操作。
2
暫停和停止是相關但不同的狀態。從用戶的角度來看,暫停的活動不能與之交互,但仍可以看到(例如,如果它已將不同的活動稱爲對話)。已停止的活動保證根本不可見(這些用途位於另一個活動或甚至不同的應用程序中)。
當然,停止意味着暫停,但反之則不然。
- 如果在屏幕的前景中的活性(在堆棧的頂部),它是活性或運行。
- 如果某個活動失去了焦點但仍然可見(即,新的非全尺寸或透明活動的焦點位於您的 活動的頂部),它是暫停。暫停的活動是完全活動的(它保留所有狀態和成員信息並保持連接到 窗口管理器),但可以在極低內存 情況下由系統終止。
- 如果一項活動被另一項活動完全遮蔽,則其停止停止。它仍然保留所有狀態和成員信息,但是,用戶不再可見,因此它的窗口被隱藏,並且在別處需要內存時系統通常會終止該窗口。
一個更詳細的解釋在在Android開發者網站的培訓部分給出。
2
參考文檔的活動:
http://developer.android.com/reference/android/app/Activity.html
的onPause()
「當系統即將開始恢復以前的活動調用這通常用於提交未保存的更改。持久數據,停止動畫和其他可能消耗CPU的東西等。此方法的實現必須非常快,因爲在此方法返回之前,下一個活動不會恢復。 後接的onResume()如果活動返回到前面或的onStop(),如果它變得對用戶不可見「
注:我會說‘恢復另一活動’,而不是「恢復一個previeous活動」。
的onStop()
「當活動不再對用戶可見,因爲其他活動已經恢復並且覆蓋這個叫。這可能是因爲一項新的活動正在開始,現有的活動正在這個活動之前,或者這個活動正在被摧毀。 如果此活動返回與用戶進行交互,則關注onRestart();如果此活動正在消失,則關注onDestroy()。「
相關問題
- 1. Android項目生命週期 - 活動生命週期之前(Activity.onCreate())
- 2. Android活動 - 生命週期:onPause和onDestroy之間的關係
- 3. 活動生命週期的可靠性(onPause到onDestory)
- 4. 活動生命週期 - 離開onPause被殺
- 5. Android活動生命週期
- 6. android活動生命週期
- 7. Android活動生命週期
- 8. 「可見性」在「活動生命週期」中指的是什麼? onPause vs onStop?
- 9. 檢查活動之外的活動生命週期狀態
- 10. 活動生命週期中的問題
- 11. Tabwidget中的活動生命週期
- 12. 活動中的片段生命週期
- 13. Android中的活動生命週期
- 14. GLSurfaceView生命週期方法onPause()和onResume()
- 15. Android活動生命週期與流程生命週期
- 16. 的Android間活動的生命週期
- 17. 活動實例的生命週期
- 18. 監視活動的生命週期
- 19. 關於活動的生命週期
- 20. 混亂的活動生命週期
- 21. 騾子活動的生命週期
- 22. Android活動生命週期的混亂
- 23. 子活動的生命週期
- 24. 活動和服務的生命週期
- 25. Android的生命週期活動
- 26. 生命週期的嵌套活動
- 27. 活動的生命週期是什麼?
- 28. Otto - 在活動生命週期之間發佈消息
- 29. Acitivity生命週期(活動之間來回移動)
- 30. Android活動生命週期問題