码迷,mamicode.com
首页 > 移动开发 > 详细

Android艺术——深看Activity的生命周期

时间:2017-06-21 11:54:35      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:attach   rest   onpause   onrestart   导致   star   tor   弹出对话框   cti   

探究Activity的生命周期

 

1.典型情况下的生命周期分析onCreate 初始化工作,加载布局资源和数据;onStart ac正在启动但是无法交互,后台;onResume ac可见,显示在前台;onPause 正在停止,必须先执行完才能执行新的acOnstop 即将停止,回收工作;onDestory 即将销毁,回收与资源释放;onRestart 重新启动

 

2.onStartonResumeonPauseonStop,有什么实质的不同。

答:onStartonResume是从Activity是否可见这个角度来回调的;后者是从Activity是否位于前台这角度来回调的。

 

3.在新Activity启动之前,栈顶的Activity需要先onPause后,新Activity才能启动。不能在onPause中做重量级的操作,因为必须onPause执行完成以后新的Activity才能Resume。所以:我们知道onPauseonStop都不能执行耗时的操作,尤其是onPause,这也意味着,我们应当尽量在onStop中做操作,从而使得新Activity尽快显示出来并切换到前台

 技术分享

4.异常情况下的生命周期分析

  1. )情况1:资源相关的系统配置发生改变导致Activity被杀死并且重新创建
    1. 例子:当前Activity处于竖屏状态,如果突然旋转屏幕,由于系统配置发生改变,默认情况下Activity就好被销毁并且重新创建。
    2. 在这种意外情况下,系统会调用onSaveInstanceState来保存当前Activity的状态。这个方法只在异常终止的情况下出现,当新的Activity被创建后,系统会调用onRestoreInstanceState取出之前保存的数据并且恢复。从时序上来说,onRestoreInstanceState的调用时机在onStart之后。
    3. Activity一样,每个View都有SR,都是通过委托思想,上层委托下层,例如TextView会保存自己的文本选中状态和文本内容。
  2. )资源内存不足导致低优先的Activity被杀死

                1.比较好的方法是将后台工作放在Service中从而保证进程有一定的优先级。

                2.Activity按照优先级来分:前台Activity(正在和用户交互)>可见但非前台Activity(弹出对话框后,不能直接交互)>后台Activity(被暂停的)。

Android艺术——深看Activity的生命周期

标签:attach   rest   onpause   onrestart   导致   star   tor   弹出对话框   cti   

原文地址:http://www.cnblogs.com/llw1996/p/7058171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!