A. Android中,activity生命周期是指什麼
一個Android應用程序在運行時,對於底層的Linux Kernel而言都是一個單獨的進程,但是對於Android系統而言,因為局限於手機畫面的大小與使用的考慮,不能把每一個運行中的應用程序窗口都顯示出來。
所以通常手機系統的界面一次僅顯示一個應用程序窗口,Android使用了Activity的概念來表示界面。
運行中的應用程序分為五大類,分別是:
前景模式:foreground process
可見模式:visible process
背景模式:background process
空白模式:empty process
服務模式:service process
除了最後一個,貌似service process是Service的事情了。其他都與Activity相關。
Android系統會判斷應用程序Activity是屬於哪一個類,給予不同的Activity生命周期。
Activity的生命周期也是它所在進程的生命周期。
Activity生命周期的運行如圖:
Activity生命周期的每一個階段都表示為金字塔上的一個台階,當系統創建一個新的activity時,每一個回調函數都把activity的狀態網上挪一步。
金子塔的最頂層就是activity運行在前景模式下,用戶可與之交互。
當用戶離開activity時,系統調用另一些回調函數,將activity的狀態從金字塔中一步一步移下來。有些情況下,activity只移動一部分,並沒有完全到底,這些情況下仍然可以移動回頂部。
注意這些狀態中只有三個狀態是靜態(static)的,意味著activity只有在這三個狀態下能停留一段時間:
Resumed:foreground,用戶可交互running state
Paused:部分被遮擋,不能接收用戶輸入也不能執行代碼,另一個半透明或者小的activity正擋在前面。
Stopped:activity完全被遮擋,不能被用戶看到,activity被認為在background,當Stopped的時候,activity實例的狀態信息被保留,但是不能執行任何代碼。
其他狀態都是轉換狀態,系統會很快調用其他相應的回調函數離開這些狀態。比如系統調用onCreate()之後,會很快調用onStart(),之後是onResume()。
相信不少朋友也已經看了以上的分析之後,也基本了解了Activity生命周期的幾個過程,我們就來說一說這幾個過程。
1.啟動Activity:系統會先調用onCreate方法,然後調用onStart方法,最後調用onResume,Activity進入運行狀態。
2.當前Activity被其他Activity覆蓋其上或被鎖屏:系統會調用onPause方法,暫停當前Activity的執行。
3.當前Activity由被覆蓋狀態回到前台或解鎖屏:系統會調用onResume方法,再次進入運行狀態。
4.當前Activity轉到新的Activity界面或按Home鍵回到主屏,自身退居後台:系統會先調用onPause方法,然後調用onStop方法,進入停滯狀態。
5.用戶後退回到此Activity:系統會先調用onRestart方法,然後調用onStart方法,最後調用onResume方法,再次進入運行狀態。
6.當前Activity處於被覆蓋狀態或者後台不可見狀態,即第2步和第4步,系統內存不足,殺死當前Activity,而後用戶退回當前Activity:再次調用onCreate方法、onStart方法、onResume方法,進入運行狀態。
7.用戶退出當前Activity:系統先調用onPause方法,然後調用onStop方法,最後調用onDestory方法,結束當前Activity。
有關於Activity的生命周期是Android中最基礎和最重要的知識,如果你想系統的了解一下Activity的生命周期,推薦你可以去一個叫做秒秒學的教程網站上看看。