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

本文探讨了Android Activity的生命周期,详细分析了onStart(), onResume(), onPause(), onStop()的差异,解释了在启动新Activity时的执行顺序。此外,还讨论了资源配置改变和内存不足导致Activity被杀死时的数据恢复机制。文中建议在onSaveInstanceState()保存状态,onRestoreInstanceState()恢复,并分享了作者的Android开发经验和学习建议。" 131336967,18874193,Python文件处理:os、glob和Pathlib模块解析,"['Python', '文件操作', '路径处理', '计算机科学', '编程技巧']
摘要由CSDN通过智能技术生成

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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值