首页 > 代码库 > Android艺术——深看Activity的生命周期
Android艺术——深看Activity的生命周期
探究Activity的生命周期
1.典型情况下的生命周期分析:onCreate 初始化工作,加载布局资源和数据;onStart ac正在启动但是无法交互,后台;onResume ac可见,显示在前台;onPause 正在停止,必须先执行完才能执行新的ac;Onstop 即将停止,回收工作;onDestory 即将销毁,回收与资源释放;onRestart 重新启动
2.onStart和onResume、onPause和onStop,有什么实质的不同。
答:onStart和onResume是从Activity是否可见这个角度来回调的;后者是从Activity是否位于前台这角度来回调的。
3.在新Activity启动之前,栈顶的Activity需要先onPause后,新Activity才能启动。不能在onPause中做重量级的操作,因为必须onPause执行完成以后新的Activity才能Resume。所以:我们知道onPause和onStop都不能执行耗时的操作,尤其是onPause,这也意味着,我们应当尽量在onStop中做操作,从而使得新Activity尽快显示出来并切换到前台
4.异常情况下的生命周期分析
- )情况1:资源相关的系统配置发生改变导致Activity被杀死并且重新创建
- 例子:当前Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生改变,默认情况下Activity就好被销毁并且重新创建。
- 在这种意外情况下,系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法只在异常终止的情况下出现,当新的Activity被创建后,系统会调用onRestoreInstanceState取出之前保存的数据并且恢复。从时序上来说,onRestoreInstanceState的调用时机在onStart之后。
- 和Activity一样,每个View都有S和R,都是通过委托思想,上层委托下层,例如TextView会保存自己的文本选中状态和文本内容。
- )资源内存不足导致低优先的Activity被杀死
1.比较好的方法是将后台工作放在Service中从而保证进程有一定的优先级。
2.Activity按照优先级来分:前台Activity(正在和用户交互)>可见但非前台Activity(弹出对话框后,不能直接交互)>后台Activity(被暂停的)。
Android艺术——深看Activity的生命周期
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。