休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述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被杀死
2.Activity按照优先级来分:前台Activity(正在和用户交互)> 可见但非前台Activity(弹出对话框后,不能直接交互)> 后台Activity(被暂停的)。
推荐阅读
- Android的长度单位理解(dp,sp,pt,px,in,mm)
- android 自动化测试案例之 MonkeyScript
- Android线程池
- 导入声明(open关键字)
- 7大最佳USB恢复软件列表(你应该选择哪个())
- Android的SD卡恢复数据的5大最佳应用合集
- Mac的10大最佳数据恢复软件合集(哪一个最好())
- 10大最佳分区恢复软件合集(哪个最适合你())
- Windows的7大最佳硬盘修复软件(快速拯救你的硬盘)