当前位置:   article > 正文

android launchMode对应生命周期_android singleinstance 生命周期

android singleinstance 生命周期

描述:4个Activity页面 配合launcheMode: singleTask、 singleInstance,查看对应生命周期调用

AActivity,CActivity,DActivity luanchMode 都是standard,指修改BActivity。

结论:

当B页面luanchMode为singleTask,栈中已经有B页面时,再启动B页面会销毁B页面之上的所有页面

当B页面luanchMode为singleInstance,栈中已经有B页面时,再启动B页面不会销毁B页面之上的所有页面

----------------------------------------------------

下面是通过打印生命周期日志的方式,方便理解对应生命周期调用。

BActivity launchMode:singleTask

依次打开页面:AActivity->BActivity->CActivity->DActivity

对应生命周期:

  1. 依次启动A->B->C->D
  2. 2019-04-22 11:37:01.705 AActivity-onCreate
  3. 2019-04-22 11:37:01.752 AActivity-onStart
  4. 2019-04-22 11:37:01.758 AActivity-onResume
  5. 2019-04-22 11:37:02.787 AActivity-onPause
  6. 2019-04-22 11:37:02.822 BActivity-onCreate
  7. 2019-04-22 11:37:02.867 BActivity-onStart
  8. 2019-04-22 11:37:02.871 BActivity-onResume
  9. 2019-04-22 11:37:03.417 AActivity-onSaveInstanceState
  10. 2019-04-22 11:37:03.418 AActivity-onStop
  11. 2019-04-22 11:37:03.917 BActivity-onPause
  12. 2019-04-22 11:37:03.944 CActivity-onCreate
  13. 2019-04-22 11:37:03.983 CActivity-onStart
  14. 2019-04-22 11:37:03.986 CActivity-onResume
  15. 2019-04-22 11:37:04.568 BActivity-onSaveInstanceState
  16. 2019-04-22 11:37:04.569 BActivity-onStop
  17. 2019-04-22 11:37:04.873 CActivity-onPause
  18. 2019-04-22 11:37:04.907 DActivity-onCreate
  19. 2019-04-22 11:37:04.948 DActivity-onStart
  20. 2019-04-22 11:37:04.951 DActivity-onResume
  21. 2019-04-22 11:37:05.476 CActivity-onSaveInstanceState
  22. 2019-04-22 11:37:05.477 CActivity-onStop

通过D页面启动B页面

D->B

  1. 2019-04-22 11:37:32.767 CActivity-onDestroy
  2. 2019-04-22 11:37:32.783 DActivity-onPause
  3. 2019-04-22 11:37:32.806 BActivity-OnNewIntent
  4. 2019-04-22 11:37:32.808 BActivity-onRestart
  5. 2019-04-22 11:37:32.809 BActivity-onStart
  6. 2019-04-22 11:37:32.810 BActivity-onResume
  7. 2019-04-22 11:37:33.314 DActivity-onStop
  8. 2019-04-22 11:37:33.314 DActivity-onDestroy

注意是C页面先进行Destroy,然后才是D页面

B页面点击back键依次关闭:

目前栈上只有AB 两个页面,CD已经销毁。

B->A

  1. B页面点击Back键,先是页面是A页面
  2. 2019-04-22 11:38:02.802 BActivity-onPause
  3. 2019-04-22 11:38:02.832 AActivity-onRestart
  4. 2019-04-22 11:38:02.833 AActivity-onStart
  5. 2019-04-22 11:38:02.835 AActivity-onResume
  6. 2019-04-22 11:38:03.381 BActivity-onStop
  7. 2019-04-22 11:38:03.382 BActivity-onDestroy
  8. A页面点击back键
  9. 2019-04-22 11:38:04.935 AActivity-onPause
  10. 2019-04-22 11:38:05.486 AActivity-onStop
  11. 2019-04-22 11:38:05.486 AActivity-onDestroy

 

BActivity launchMode:singleInstance

依次打开页面:AActivity->BActivity->CActivity->DActivity

对应生命周期:

  1. 启动A页面
  2. 2019-04-22 11:24:30.652 AActivity-onCreate
  3. 2019-04-22 11:24:30.702 AActivity-onStart
  4. 2019-04-22 11:24:30.706 AActivity-onResume
  5. 通过A启动B页面
  6. 2019-04-22 11:24:33.348 AActivity-onPause
  7. 2019-04-22 11:24:33.420 BActivity-onCreate
  8. 2019-04-22 11:24:33.469 BActivity-onStart
  9. 2019-04-22 11:24:33.475 BActivity-onResume
  10. 2019-04-22 11:24:33.944 AActivity-onSaveInstanceState
  11. 2019-04-22 11:24:33.945 AActivity-onStop
  12. 通过B启动C页面
  13. 2019-04-22 11:24:34.608 BActivity-onPause
  14. 2019-04-22 11:24:34.638 CActivity-onCreate
  15. 2019-04-22 11:24:34.681 CActivity-onStart
  16. 2019-04-22 11:24:34.685 CActivity-onResume
  17. 2019-04-22 11:24:35.374 BActivity-onSaveInstanceState
  18. 2019-04-22 11:24:35.375 BActivity-onStop
  19. 通过C启动D页面
  20. 2019-04-22 11:24:35.700 CActivity-onPause
  21. 2019-04-22 11:24:35.734 DActivity-onCreate
  22. 2019-04-22 11:24:35.768 DActivity-onStart
  23. 2019-04-22 11:24:35.771 DActivity-onResume
  24. 2019-04-22 11:24:36.297 CActivity-onSaveInstanceState
  25. 2019-04-22 11:24:36.297 CActivity-onStop

通过D页面打开B页面

D->B

  1. 通过D打开B页面,调用B页面的OnNewIntent方法,并没有重新create一个B页面
  2. 2019-04-22 11:28:30.137 DActivity-onPause
  3. 2019-04-22 11:28:30.157 BActivity-OnNewIntent
  4. 2019-04-22 11:28:30.160 BActivity-onRestart
  5. 2019-04-22 11:28:30.161 BActivity-onStart
  6. 2019-04-22 11:28:30.162 BActivity-onResume
  7. 2019-04-22 11:28:30.780 DActivity-onSaveInstanceState
  8. 2019-04-22 11:28:30.781 DActivity-onStop

通过打印日志查看 当BActivity launcheMode为singleInstance时,后面打开的C,D页面并没有被销毁。

点击Back键依次关闭页面

B->D->C->A

  1. 点击Back键,依次关闭页面
  2. 关闭B页面
  3. 2019-04-22 11:29:14.765 BActivity-onPause
  4. 2019-04-22 11:29:14.793 DActivity-onRestart
  5. 2019-04-22 11:29:14.794 DActivity-onStart
  6. 2019-04-22 11:29:14.796 DActivity-onResume
  7. 2019-04-22 11:29:15.461 BActivity-onStop
  8. 2019-04-22 11:29:15.462 BActivity-onDestroy
  9. 关闭D页面
  10. 2019-04-22 11:29:16.785 DActivity-onPause
  11. 2019-04-22 11:29:16.816 CActivity-onRestart
  12. 2019-04-22 11:29:16.817 CActivity-onStart
  13. 2019-04-22 11:29:16.819 CActivity-onResume
  14. 2019-04-22 11:29:17.353 DActivity-onStop
  15. 2019-04-22 11:29:17.354 DActivity-onDestroy
  16. 关闭C页面
  17. 2019-04-22 11:29:19.337 CActivity-onPause
  18. 2019-04-22 11:29:19.364 AActivity-onRestart
  19. 2019-04-22 11:29:19.366 AActivity-onStart
  20. 2019-04-22 11:29:19.367 AActivity-onResume
  21. 2019-04-22 11:29:19.882 CActivity-onStop
  22. 2019-04-22 11:29:19.883 CActivity-onDestroy
  23. 关闭A页面
  24. 2019-04-22 11:29:23.387 AActivity-onPause
  25. 2019-04-22 11:29:23.961 AActivity-onStop
  26. 2019-04-22 11:29:23.961 AActivity-onDestroy

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/编程变革者/article/detail/60700
推荐阅读
相关标签
  

闽ICP备14008679号