Activity 是一個應用組件,用戶可與其提供的屏幕進行交互,以執行撥打電話、拍攝照片、發送電子郵件或查看地圖等操作。通過實現回調方法可以管理 Activity 的生命周期。
1、onCreate方法:當 Activity 創建視圖時調用?
2、onRestart方法:當 Activity 界面從新打開(第一次創建后不會調用,再次打開 Activity 界面時會調用)?
3、onStart方法:當activity界面變成可見時調用
4、onResume方法:當activity界面獲取焦點時調用
5、onPause方法:當activity界面失去焦點時調用
6、onStop方法:當activity界面不可見時調用
7、onDestory方法:當activity銷毀時調用
示例代碼:
新建一個 Android 工程, 在 MainActivity 中重寫以下方法
@Override
protected void onCreate(Bundle savedInstanceState) {
? super.onCreate(savedInstanceState);
? setContentView(R.layout.activity_main);
? System.out.println("--------- onCreate 創建視圖 ---------");
}
@Override
protected void onRestart() {// 當activity界面從新打開,第一次打開不會調用
? super.onRestart();
? System.out.println("--------- onRestart 界面從新打開---------");
}
@Override
protected void onStart() {// 當activity界面變成可見時調用
? super.onStart();
? System.out.println("--------- onStart activity可見---------");
}
@Override
protected void onResume() {// 當activity界面獲取焦點時調用
? super.onResume();
? System.out.println("--------- onResume 獲取焦點 ---------");
}
@Override
protected void onPause() {// 當activity界面失去焦點時調用
? super.onPause();
? System.out.println("--------- onPause 失去焦點 ---------");
}
@Override
protected void onStop() {// 當activity界面不可見時調用
? super.onStop();
? System.out.println("--------- onStop 界面不可見 ---------");
}
@Override
protected void onDestroy() {// 當activity銷毀時調用
? super.onDestroy();
? System.out.println("--------- onDestroy activity銷毀 ---------");
}
程序啟動時的日志信息:
I/System.out: --------- onCreate 創建視圖 ---------
I/System.out: --------- onStart activity可見---------
I/System.out: --------- onResume 獲取焦點 ---------
點擊 Home 鍵的日志信息:
I/System.out: --------- onPause 失去焦點 ---------
I/System.out: --------- onStop 界面不可見 ---------
再次打開程序的日志信息:
I/System.out: --------- onRestart 界面從新打開---------
I/System.out: --------- onStart activity可見---------
I/System.out: --------- onResume 獲取焦點 ---------
點擊返回鍵,銷毀 Activity 時的日志信息:
I/System.out: --------- onPause 失去焦點 ---------
I/System.out: --------- onStop 界面不可見 ---------
I/System.out: --------- onDestroy activity銷毀 ---------
橫豎屏切換時 Activity 的生命周期(會先銷毀,然后再創建)
程序啟動時的日志信息(默認豎屏):
I/System.out: --------- onCreate 創建視圖 ---------
I/System.out: --------- onStart activity可見---------
I/System.out: --------- onResume 獲取焦點 ---------
程序切換到橫屏的日志信息:
I/System.out: --------- onPause 失去焦點 ---------
I/System.out: --------- onStop 界面不可見 ---------
I/System.out: --------- onDestroy activity銷毀 ---------
I/System.out: --------- onCreate 創建視圖 ---------
I/System.out: --------- onStart activity可見---------
I/System.out: --------- onResume 獲取焦點 ---------
再切換成豎屏的日志信息:
I/System.out: --------- onPause 失去焦點 ---------
I/System.out: --------- onStop 界面不可見 ---------
I/System.out: --------- onDestroy activity銷毀 ---------
I/System.out: --------- onCreate 創建視圖 ---------
I/System.out: --------- onStart activity可見---------
I/System.out: --------- onResume 獲取焦點 ---------