探究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的生命周期的更多相关文章
-
Android应用程序中Activity的生命周期
Android应用程序中Activity的生命周期 对于Android来说Activity的生命周期是非常的重要,尤其是对于新学者来说,只有充分了解了Activity的生命周期,才能写出优良用户体验的 ...
-
Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
-
Android开发艺术1之Activity的生命周期
作为<Android开发艺术探索>这本书的第一篇博客,我就多说几句.本系列博客旨在对书中相关内容进行解读,简化,提供一个入门到提高的流程.不敢说书评,也不能说教程,只希望对有些人有帮助就好 ...
-
android学习四(Activity的生命周期)
要学好活动(Activity).就必需要了解android中Activity的声明周期.灵活的使用生命周期.能够开发出更好的程序,在android中是使用任务来管理活动的,一个任务就是一组存放在栈里的 ...
-
【Android】11.1 Activity的生命周期和管理
分类:C#.Android.VS2015: 创建日期:2016-02-21 一.基本概念 1.必须理解这些方法,否则你编的程序根本就没法在实际项目中使用 当然,如果仅仅是为了玩玩,或者仅仅是作为例子为 ...
-
朝花夕拾-android 自定义application 管理activity的生命周期
为了安全退出多个已创建的activity? 可以自定义application:myapplication. 增加一个list成员保存,一些关键的已创建的activity实例: private List ...
-
第三章:Activity的生命周期
一:Activity的生命周期方法 Android提供了很多Activity的生命周期方法,比如我们常用的onCreate.onPause.onResume等.这里主要介绍粗粒度的周期方法,诸如onP ...
-
Android开发艺术探索读书笔记——01 Activity的生命周期
http://www.cnblogs.com/csonezp/p/5121142.html 新买了一本书,<Android开发艺术探索>.这本书算是一本进阶书籍,适合有一定安卓开发基础,做 ...
-
Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
随机推荐
-
OMXplayer播放视频的参数说明
1.OMXplayer支持硬解码,因此是一个非常不错的选择.2.支持格式目前知道的有:MKV.AVI.FLV.MP43.如果想用全屏播放,参数是:-r4.如果想用HDMI输出声音,参数是:-o hdm ...
-
升级到Xcode6.2后 免证书真机调试出错的问题
我的本来是Xcode6.1 可以正常免证书真机调试,升级到Xcode6.2以后,真机调试就报错,然后就又按照这篇文章http://www.cnblogs.com/liuliuliu/p/4030524 ...
-
mybatis generator with oracle
1.generator.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generat ...
-
Cloudera CDH 、Impala本地通过Parcel安装配置详解
一.Parcel本地源与Package本地源的区别 本地通过Parcel安装过程与本地通过Package安装过程完全一致,不同的是两者的本地源的配置. 区别如下: Package本地源:软件包是.rp ...
-
myBatis自动生成相关代码文件配置(Maven)
pom.xml文件添加配置 <build> <finalName>generator</finalName> <plugins> <!-- mav ...
-
基于局部敏感哈希的协同过滤推荐算法之E^2LSH
需要代码联系作者,不做义务咨询. 一.算法实现 基于p-stable分布,并以‘哈希技术分类’中的分层法为使用方法,就产生了E2LSH算法. E2LSH中的哈希函数定义如下: 其中,v为d维原始数据, ...
-
xmlDom
加载并解析xml文件: <script type="text/javascript"> try //Internet Explorer { xmlDoc=new Act ...
-
C++入门程序作业2
程序在Dev-C++5.5.3版本运行 结构体的使用 给结构体赋值,打印出结构体中学生姓名,分数,平均分 #include <iostream>#include <cassert&g ...
-
python序列化模块的速度比较
# -*- coding: utf-8 -*- # @Time : 2019-04-01 17:41 # @Author : cxa # @File : dictest.py # @Software: ...
-
Spring 学习04
一.上节内容回顾 1 基于aspectj的注解aop操作 2 spring的jdbcTemplate操作 (1)实现crud操作 - 添加.修改.删除update方法 - 查询 -- 查询某个值 qu ...