一個Activity活動就是一個界面的布局。
程序正常啟動時:onCreate()->onStart()->onResume();
onCreate()在活動第一次創建時被調用,主要用於加載布局
onStart()這個方法在活動由不可見變為可見的時候調用。
onResume這個方法在活動准備好和用戶進行交互的時候調用。此時的活動一定位於返回棧的棧頂,並且處於運行狀態.
三種調用的場景:
一個Activity啟動另一個Activity: onPause()->onStop(),再返回:onRestart()->onStart()->onResume()
程序按back 退出: onPause()->onStop()->onDestory(),再進入:onCreate()->onStart()->onResume();
程序按home 退出: onPause()->onStop(),再進入:onRestart()->onStart()->onResume();
生命周期的一些細節:
1 Activity 第一次創建時會調用 onCreate(Bundle)。 該方法用於創建 Activity 的用戶界面,創建所需的后台線程,並執行其他的全局初始化。如果能獲得Activity以前的狀態,就可以將包含此狀態的 android.os.Bundle 對象傳給onCreate();否則就傳入一個空引用。在調用 onCreate(Bundle)之后,
Android 總會調用 onStart()。
2 在用戶看到 Activity 之前會調用 onStart()方法。當 Activity 進入前台時, Android在調用 onStart()之后就會調用 onResume();當 Activity 變成隱藏狀態時, Android就會在調用 onStart()之后調用 onStop()。
3 當 Activity 停止后,在其重新啟動之前會調用 onRestart()。在調用 onRestart()之后,Android 會調用 onStart()。
4 在 Activity 開始跟用戶交互之前會調用 onResume()。此時, Activity 獲得了焦點,用戶的輸入會發送給該 Activity。當 Activity 必須暫停時,Android 就會在調用onResume()之后調用 onPause()。
5 當 Android 要恢復另一個 Activity 時會調用 onPause()。該方法一般用於保留未保存的修改,停止可能會消耗處理器資源的動畫等。它應該很快地完成工作,因為只有等該方法返回時,下一個 Activity 才能被重新激活。在調用了 onPause()之后,當 Activity 開始跟用戶交互時, Android 就會使用onResume(),當 Activity 變成隱藏狀態時調用 onStop()。 許多 Activity 執行 onPause()方法來提交數據的改變或者准備停止與用戶的交互操作。
6 當 Activity 變為隱藏狀態時會調用 onStop()。這種情況可能發生在 Activity 被銷毀,或者另一個 Activity(正在運行的或新啟動的)被重新激活並將覆蓋前一個 Activity時。在調用 onStop()之后,如果 Activity 重新跟用戶交互, Android 會調用 onRestart()方法;
7 如果 Activity 退出了,就會調用 onDestroy()方法。
8 在 Activity 被銷毀之前會調用 onDestroy(),除非是內存不夠, Android 強行終止了Activity 的進程。在這種情況下就不會調用 onDestroy()。如果調用了 onDestroy(),那它就是該 Activity 接收的最終調用。在 onPause()、 onStop()或 onDestroy()返回之后, Android 可以終止托管 Activity 的進程。從 onPause()返回后到調用 onResume()之前, Activity 都處於可終止狀態。在 onPause()再次返回之前, Activity 都不會再處於可終止狀態。