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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章