2014-05-21 67 views

回答

2

因爲documentation是這麼說的:-)

而且它是有道理的。該應用程序已打開,用戶按下主頁按鈕:onPause()被調用。一段時間後系統需要內存並關閉應用程序:onStop()被調用。

0

因爲onPaused()會在您的應用程序旋轉或對話框打開時執行。 onStop()當你的應用程序不在屏幕上時,需要在生命週期中向用戶或程序員的這兩點指出要執行的操作。

2

暫停和停止是相關但不同的狀態。從用戶的角度來看,暫停的活動不能與之交互,但仍可以看到(例如,如果它已將不同的活動稱爲對話)。已停止的活動保證根本不可見(這些用途位於另一個活動或甚至不同的應用程序中)。

enter image description here

當然,停止意味着暫停,但反之則不然。

official documentation

  • 如果在屏幕的前景中的活性(在堆棧的頂部),它是活性運行
  • 如果某個活動失去了焦點但仍然可見(即,新的非全尺寸或透明活動的焦點位於您的 活動的頂部),它是暫停。暫停的活動是完全活動的(它保留所有狀態和成員信息並保持連接到 窗口管理器),但可以在極低內存 情況下由系統終止。
  • 如果一項活動被另一項活動完全遮蔽,則其停止停止。它仍然保留所有狀態和成員信息,但是,用戶不再可見,因此它的窗口被隱藏,並且在別處需要內存時系統通常會終止該窗口。

一個更詳細的解釋在在Android開發者網站的培訓部分給出。

2

參考文檔的活動:

http://developer.android.com/reference/android/app/Activity.html

的onPause()

「當系統即將開始恢復以前的活動調用這通常用於提交未保存的更改。持久數據,停止動畫和其他可能消耗CPU的東西等。此方法的實現必須非常快,因爲在此方法返回之前,下一個活動不會恢復。 後接的onResume()如果活動返回到前面或的onStop(),如果它變得對用戶不可見「

注:我會說‘恢復另一活動’,而不是「恢復一個previeous活動」。

的onStop()

「當活動不再對用戶可見,因爲其他活動已經恢復並且覆蓋這個叫。這可能是因爲一項新的活動正在開始,現有的活動正在這個活動之前,或者這個活動正在被摧毀。 如果此活動返回與用戶進行交互,則關注onRestart();如果此活動正在消失,則關注onDestroy()。「