Android之Activity生命週期
Activity生命週期流程圖
該流程圖很好的展示了Activity生命週期的全部流程,更加容易理解。
生命週期方法簡析
- onCreate():這是第一個回調,在活動第一次創建時調用
- onStart():這個回調在活動爲用戶可見時被調用
- onResume():這個回調在應用程序與用戶開始可交互的時候調用
- onPause():被暫停的活動無法接受用戶輸入,不能執行任何代碼。當前活動將要被暫停,上一個活動將要被恢復時調用
- onStop():當活動不在可見時調用
- onDestroy():當活動被系統銷燬之前調用
- onRestart():當活動被停止以後重新打開時調用
測試代碼
package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
public class MainActivity extends Activity {
String msg = "Android : ";
/** 當活動第一次被創建時調用 */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(msg, "The onCreate() event");
}
/** 當活動即將可見時調用 */
@Override
protected void onStart() {
super.onStart();
Log.d(msg, "The onStart() event");
}
/** 當活動可見時調用 */
@Override
protected void onResume() {
super.onResume();
Log.d(msg, "The onResume() event");
}
/** 當其他活動獲得焦點時調用 */
@Override
protected void onPause() {
super.onPause();
Log.d(msg, "The onPause() event");
}
/** 當活動不再可見時調用 */
@Override
protected void onStop() {
super.onStop();
Log.d(msg, "The onStop() event");
}
/** 當活動將被銷燬時調用 */
@Override
public void onDestroy() {
super.onDestroy();
Log.d(msg, "The onDestroy() event");
}
}
總結
當Activity啓動時,依次會調用onCreate(),onStart(),onResume(),而當Activity退居後臺時(不可見,點擊Home或者被新的Activity完全覆蓋),onPause()和onStop()會依次被調用。當Activity重新回到前臺(從桌面回到原Activity或者被覆蓋後又回到原Activity)時,onRestart(),onStart(),onResume()會依次被調用。當Activity退出銷燬時(點擊back鍵),onPause(),onStop(),onDestroy()會依次被調用,到此Activity的整個生命週期方法回調完成。