当前位置:   article > 正文

Android 开发艺术探索笔记(1),安卓高级开发工程师面试题_安卓开发笔记

安卓开发笔记

<正常情况下的生命周期分析>

1. 关于 onStart() onResume() 和 onPause() onStop()的实质区别:

onStart()和onStop()是对于Activity **是否可见**这个角度来进行的方法

而onResume()和onStop()是对于Activity **是否处于前台**这个角度来进行的方法,除此之外没有实质的区别

2. 假设当前的Activity为A,如果用户这个时候打开一个新的Activity B,那么B的onResume()和A的onPause()哪一个先执行?

简单理解,启动Activty的请求会由Instrumentation来处理,然后它通过Binder向AMSActivityManagerService)发送请求,AMS内部维护者一个ActivityStack并负责栈内的Activity的状态同步,AMS通过ActivityThread去同步Activity的状态从而完成生命周期方法的调用。在ActivityStack中的ResumeTopActivityInnerLocker方法中的代码看出需要栈顶的Activity先onPause()后,新的Activity才会启动。最终在ActivityStackSupervisor中的realStartActivityLocked方法中调用scheduelLaunchActivity方法实现了新的Activity的onCreate、onStart、onResume的调用。

因此得出结论是**旧的Activity先onPause,新的Activity再启动

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

闽ICP备14008679号