Android Activity的生命周期詳細介紹
生命周期描述的是一個類從創建(new出來)到死亡(垃圾回收)的過程中會執行的方法。在這個過程中,會針對不同的生命階段調用不同的的方法。
Activity是Android中四大組件之一,是最常見的應用組件,也是用的最多的組件,它能夠提供一個界面與用戶進行交互。Activity從創建到銷毀有多種狀態,從一種狀態到另一種狀態時會激發相應的回調方法,這些回調方法包括:onCreate onDestory onStart onStop onResume onPause。這些方法都是兩兩對應的,onCreate-->創建與onDestory-->銷毀;onStart-->可見與onStop-->不可見;onResume-->可編輯(焦點)和onPause-->未獲得焦點。最后還有一個方法是onRestart,這個方法在什么時候調用呢?當Activity被onStop后,但是并沒有onDestory,即并沒有被銷毀時,用戶重新回到當前Activity時,就調用onRestart方法,這里就不再是調用onCreate方法了。
public class MainActivity extends ActionBarActivity { private final static String TAG = "MainActivity"; @Override // Activity被創建時調用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.e(TAG, "onCreate......."); } @Override // 該狀態用戶可見,但是用戶還不能與之進行交互 protected void onStart() { super.onStart(); Log.e(TAG, "onStart......."); } @Override // 該狀態是Activity獲得用戶焦點,用戶可以與之進行交互 protected void onResume() { super.onResume(); Log.e(TAG, "onResume......."); } @Override //與onResume對應,當Activity失去焦點時調用 protected void onPause() { super.onPause(); Log.e(TAG, "onPause......."); } @Override //與onStart對應,當Activity不可見時調用 protected void onStop() { super.onStop(); Log.e(TAG, "onStop......."); } @Override //與onCreate對應,當Activity被銷毀時調用 protected void onDestroy() { super.onDestroy(); Log.e(TAG, "onDestroy......."); } @Override //Activity從后臺重新回到前臺調用 protected void onRestart() { super.onRestart(); Log.e(TAG, "onRestart......."); } } Activity的完整生命周期:oncreate-->onstart-->onresume-->onpause-->onstop-->ondestory。用戶在點擊返回鍵的時候,Activity會銷毀,這時Activity先是不可編輯,再是不可見,最后被銷毀。而當用戶點擊home鍵的時候,即表示退回到桌面,這時的Activity并不會被銷毀,所以這里現實不可編輯,再是不可見,這時并不會調用onDestory方法被銷毀,此時再點擊進入該應用,會調用onRestart方法,不再是調用Activity,然后再是調用onStart,onResume。
下面是Activity的生命周期圖:

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
新聞熱點
疑難解答