您好,登錄后才能下訂單哦!
activity類處于android.app包中,繼承體系如下: java.lang.Object -> android.content.Context -> android.app.ApplicationContext ->android.app.Activity
4大狀態:
Running狀態:一個新的Activity啟動入棧后,它在屏幕最前端,處于棧的最頂端,此時它處于可見并可和用戶交互的激活狀態。 Paused狀態:當Activity被另一個透明或者Dialog樣式的Activity覆蓋時的狀態。此時它依然與窗口管理器保持連接,系統繼續維護其內部狀態,它仍然可見,但它已經失去了焦點,故不可與用戶交互。 Stopped狀態:當Activity不可見時,Activity處于Stopped狀態。當Activity處于此狀態時,一定要保存當前數據和當前的UI狀態,否則一旦Activity退出或關閉時,當前的數據和UI狀態就丟失了。 Killed狀態:Activity被殺掉以后或者被啟動以前,處于Killed狀態。這是Activity已從Activity堆棧中移除,需要重新啟動才可以顯示和使用。
其中,Running狀態和Paused狀態是可見的,Stopped狀態和Killed狀態時不可見的。
七大生命周期函數:
1.onCreate() // 在Activity生命周期開始時被調用
2.onRestart() //當activity從停止狀態重新啟動時調用
3.onStart() //當activity對用戶即將可見的時候調用。
4.onResume() //當activity將要與用戶交互時調用此方法,此時activity在activity棧的棧頂,用戶輸入已經 可以傳遞給它
5.onPause()// 當系統要啟動一個其他的activity時調用(其他的activity顯示之前),這個方法被用來提交那些持久數據的改變、停止動畫、和其他占用CPU資源的東西。由于下一個activity在這個方法返回之前不會resumed,所以實現這個方法時代碼執行要盡可能快。
6.onStop()// 當另外一個activity恢復并遮蓋住此activity,導致其對用戶不再可見時調用。一個新activity啟動、其它activity被切換至前景、當前activity被銷毀時都會發生這種場景。
7.onDestroy() // 在activity被銷毀前所調用的最后一個方法,當進程終止時會出現這種情況
如圖:
幾個特殊需要注意生命周期示例
1.父Activity啟動子Activity,子Actvity退出,父Activity調用順序如下
onCreate() -> A
onStart() -> A
onResume() ->A
onFreeze() -> A
onPause() -> A
onCreate() -> B
onStart() -> B
onResume() ->B
onStop() -> A (A OnStop是在B”可操作”后執行)
onDestory ->A (Maybe)
2.用戶點擊Home,Actvity調用順序如下
onCreate()
onStart()
onResume()
onFreeze()
onPause()
onStop() — Maybe
onDestroy() – Maybe
3.在父Activity上顯示透明的或非全屏的activity,Activity調用順序如下:
onCreate()
onStart()
onResume()
onFreeze()
onPause()
4.設備進入睡眠狀態,Activity調用順序如下:
onCreate()
onStart()
onResume()
onFreeze()
onPause()
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。