[英]onPause, onResume, onStop, onStart, etc, not firing - life cycle?
[英]Android Activity life cycle - onPause() and onResume()
在Android開發人員圖中 ,我看到onResume()
總是在onPause()
之前調用。 假設用戶開始一個新的Activity
,為什么在onPause()
之前加上onResume()
?
我的意思是:
可以在兩種情況下調用OnResume:
1)用戶開始新活動時(在OnPause之前)
2)當活動處於后台並且用戶將活動帶回前台時
我希望在每種情況下都應該做其他事情。
你錯了。 每當創建活動時,就在onStart之后調用 onResume 。 每當您的活動返回時,都會調用onPause堆棧。 再次,如果您的活動回到前台,則會調用onResume 。 因此,它不像在onPause之前調用onResume一樣。 每當活動從onPause狀態返回時,都會調用onResume而不是onStart或onCreate 。 發生這種情況是為了使Android不必一次又一次地創建Activity實例,盡管這些實例沒有被正確銷毀。 這也是相當有效的內存。
注意:如果您的應用程序正在運行,並且用戶按下“ 后退”按鈕或“ 主頁”按鈕,則“活動”將進入onPause()和onStop()狀態。 此后,如果用戶再次回到您的應用程序, 則會依次調用onRestart() , onStart()和onResume() 。
那么,當活動僅處於onPause()狀態時? 當對話框浮現在您的活動上方或您的活動在“拆分”屏幕中顯示但沒有焦點時(用戶未與您的應用進行交互) 。 在這些情況下,活動僅變為onPause()狀態。
總是在
onPause()
之前調用onResume()
onPause()
這是對的。 在首次啟動活動,在onCreate
之前首次啟動活動以及恢復活動時(用戶導航回到您的活動),總是會調用onResume
假設用戶開始一個新的Activity,為什么在
onPause()
之前加上onResume()
僅在將Activity置於后台時,或在onDestroy
之前(如果應用程序被破壞),才調用onPause
。 因此, 總是 在調用onResume
之后調用onPause
。 為什么? 因為這就是Android框架定義的Activity的生命周期。
活動的生命周期如下
黃色背景:活動進入背景,因此不再可見。 用戶返回到活動。
例如
綠色背景:活動停留在可見的屏幕區域中,但未處於活動狀態,例如,激活多個窗口(分屏),每個窗口占據屏幕的一部分,並提示您的應用程序使其處於活動狀態
這是帶有兩個應用程序的分屏示例:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.