簡介:四大組件之一,在應用中一個Activity可以用來表示一個界面,可以理解為用戶可視化界面,一個android應用必須通過Activity來運行和啟動。
1.三大基本狀態與七大生命周期函數
![]() |
![]() |
2.代碼實現---LifeCycleActivity.class
/** * Activity的三個狀態和七大生命周期方法分析 * */ public class LifeCycleActivity extends AppCompatActivity { /** * Activity創建時第一個調用的方法,通常我們在該方法中加載布局文件,初始化UI組件,事件注冊等等 * @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_life_cycle); System.out.println("Activity---->onCreate"); } /** * 在onCreate()之后調用,用於顯示界面,但用戶還不能進行交互 */ @Override protected void onStart() { super.onStart(); System.out.println("Activity---->onStart"); } /** * 在onStart()之后調用,該方法執行完成后,用戶可以進行交互,當前Activity進入Resumed狀態 * 當一個paused狀態的activity被重新返回時,會再次調用該方法,讓activity進入運行狀態 */ @Override protected void onResume() { super.onResume(); System.out.println("Activity---->onResume"); } /** * 當其它activity(透明或窗口模式)進入時,會被調用,讓當前activity進入paused狀態(暫停狀態) * 當前activity還可見但不可交互,如果其它更高優先級的APP需要內存時,當前activity可能會被銷毀(kill) * 當前activity被返回時會調用onResume() */ @Override protected void onPause() { super.onPause(); System.out.println("Activity---->onPause"); } /** * 當其它activity完全覆蓋該activity時,會被調用,當前activity進入stop狀態(停止狀態) * 當前activity不可見,如果其它更高優先級的APP需要內存時,當前activity可能會被銷毀(kill) * 當前activity被返回時會調用onRestart() */ @Override protected void onStop() { super.onStop(); System.out.println("Activity---->onStop"); } /** * 當一個stopped狀態的activity被返回時調用,之后再調用onResume方法進入運行狀態 */ @Override protected void onRestart() { super.onRestart(); System.out.println("Activity---->onCreate"); } /** * 當前activity被銷毀時調用,通常在該方法中用來釋放資源 */ @Override protected void onDestroy() { super.onDestroy(); System.out.println("Activity---->onDestory"); } }
3.運行結果分析:
(1)當啟動actvity時,會調用onCreate()-->onStart()-->OnResume()
(2)當按Home鍵或者鎖屏鍵時,會調用OnPause()-->OnStop()
(3)當按退出鍵時,會調用OnPause()-->OnStop()-->OnDestory()
(4)當解開鎖屏時,會調用OnRestart()-->OnStart()-->OnResume()