ActivityThread.handlexxxActivity()单步调试结论

case1:act A start act B

  1. A.onPause();
  2. B.launchActivity;
  3. A.onStop();

可以看出在这个case里面,先会调用A.onPause(),然后才是B.launchActivity,所以在实际中为了能让B快速启动,那么我们就不应该在A的onPause里做过多的事情,否则会拖慢B的启动,用户体验不好。
分解的更细点就是A.onPause -> B.onCreate -> B.onStart -> B.onResume -> A.onStop

接case1,B按了back键

B.onPause -> A.onRestart -> A.onStart -> A.onResume -> B.onStop -> B.onDestroy

再接case1,A按了back键

A.onPause -> A.onStop -> A.onDestroy

case4: act直接调finish方法

  1. 先是onPause;
  2. 最后直接是onDestroy,没有onStop啥事;

可以看出直接调finish的时候,恰好是onPause被调,onStop不会被调的情况,这一点发现还是和笔者以往的认识有些出入,哈哈。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容