Activity的不同生命週期中調用finish

基於Android8.0,本文僅記錄不同生命週期中調用finish,Activity的生命週期執行順序。

Demo應用包含兩個Activity:ActivityA和ActivityB,如下流程是在ActivityB的不同生命週期中調用finish函數。

目錄

1.onCreate中調用finish

2.onStart中調用finish

3.onResume中調用finish

4. onPause中調用finish

5. onStop中調用finish

6. onDestroy中調用finish

7.onRestart中調用finish

8.onSaveInstanceState中調用finish


1.onCreate中調用finish

  • 啓動ActivityA:
  1. ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB:
  1. ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityA.onResume
  4. ActivityB.onDestroy

2.onStart中調用finish

  • 啓動ActivityA:
  1. ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB:
  1. ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityA.onResume
  5. ActivityB.onStop
  6. ActivityB.onDestroy

3.onResume中調用finish

  • 啓動ActivityA
  1. ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB
  1. ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityB.onPause
  6. ActivityA.onResume
  7. ActivityB.onStop
  8. ActivityB.onDestroy

4. onPause中調用finish

  • 啓動Activity
  1. ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB
  1. ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityA.onSaveInstanceState
  6. ActivityA.onStop
  • 點擊Home鍵
  1. ActivityB.onPause
  2. ActivityB.onStop
  3. ActivityB.onDestroy

5. onStop中調用finish

  • 啓動Activity
  1. ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB
  1. ​​​​​​​​​​​​​​ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityA.onSaveInstanceState
  6. ActivityA.onStop​​​​​​​
  • 點擊Home鍵
  1. ActivityB.onPause
  2. ActivityB.onSaveInstanceState
  3. ActivityB.onStop
  4. ActivityB.onDestroy

6. onDestroy中調用finish

  • 啓動ActivityA
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • ActivityA中啓動ActivityB
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityA.onSaveInstanceState
  6. ActivityA.onStop​​​​​​​
  • 點擊Home鍵
  1. ​​​​​​​ActivityB.onPause
  2. ActivityB.onSaveInstanceState
  3. ActivityB.onStop
  • 重新進入ActivityB
  1. ​​​​​​​ActivityB.onRestart
  2. ActivityB.onStart
  3. ActivityB.onResume
  • 點擊Back鍵
  1. ​​​​​​​ActivityB.onPause
  2. ActivityA.onRestart
  3. ActivityA.onStart
  4. ActivityA.onResume
  5. ActivityB.onStop
  6. ActivityB.onDestroy

7.onRestart中調用finish

  • 啓動ActivityA
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • A中啓動ActivityB
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityA.onSaveInstanceState
  6. ActivityA.onStop​​​​​​​
  • 點擊home鍵
  1. ​​​​​​​ActivityB.onPause
  2. ActivityB.onSaveInstanceState
  3. ActivityB.onStop
  • 重新進入B
  1. ActivityB.onRestart
  2. ActivityB.onStart
  3. ActivityB.onResume
  4. ActivityB.onPause
  5. ActivityA.onRestart
  6. ActivityA.onStart
  7. ActivityA.onResume
  8. ActivityB.onStop
  9. ActivityB.onDestroy

8.onSaveInstanceState中調用finish

  • 啓動ActivityA
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onCreate
  2. ActivityA.onStart
  3. ActivityA.onResume
  • A中啓動ActivityB
  1. ​​​​​​​​​​​​​​​​​​​​​ActivityA.onPause
  2. ActivityB.onCreate
  3. ActivityB.onStart
  4. ActivityB.onResume
  5. ActivityA.onSaveInstanceState
  6. ActivityA.onStop​​​​​​​
  • 點擊home鍵
  1. ​​​​​​​ActivityB.onPause
  2. ActivityB.onSaveInstanceState
  3. ActivityB.onStop
  4. ActivityB.onDestroy
  • 重新進入應用
  1. ​​​​​​​ActivityA.onRestart
  2. ActivityA.onStart
  3. ActivityA.onResume
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章