Activity生命周期

Activity 是一個應用組件,用戶可與其提供的屏幕進行交互,以執行撥打電話、拍攝照片、發送電子郵件或查看地圖等操作。通過實現回調方法可以管理 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 獲取焦點 ---------

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容