《android开发艺术探索》读书笔记(一)--Activity的生命周期和启动模式
No1:
如果新Activity采用了透明主题,那么当前Activity不会回调onStop;
No2:
新Activity启动之前,栈顶的Activity需要先onPause后,新Activity才能启动。
No3:
onPause和onStop都不能执行耗时的操作。
No4:
Activity在异常情况下终止的话,系统会调用onSaveInstanceState来保存当前Activity的状态,这个方法在onStop之前,和onPause没有既定的时序关系。当Activity重新创建后,系统会调用onRestoreInstanceState,并且把Activity销毁时onSaveInstanceState方法所保存的Bundle对象作为参数同时传递给onRestoreInstanceState和onCreate方法,onRestoreInstanceState发生在onStart之后。
No5:
每个View都有onSaveInstanceState和onRestoreInstanceState这两个方法,不同的具体实现,能够自动为每个View恢复不同的数据。
No6:
onRestoreInstanceState和onCreate有一点不同:onRestoreInstanceState其参数Bundle savedInstanceState一定是有值的,onCreate的参数Bundle savedInstanceState为null
No7:
Activity优先级:
1)前台Activity--正在和用户交互的Activity
2)可见但非前台Activity
3)后台Activity--已经被暂停的Activity
当系统内存不足时,系统就会按照上述优先级去杀死目标Activity所在进程,并在后续通过onSaveInstanceState和onRestoreInstanceState来存储和恢复数据
No8:
如果不想让Activity在屏幕旋转的时候重新创建,就可以给configChanges属性添加orientation这个值。并且没有调用onSaveInstanceState和onRestoreInstanceState来存储和恢复数据,取而代之的是系统调用了Activity的onConfigurationChanged方法。
No9:

No10:
当我们用ApplicationContext去启动standard模式的Activity的时候会报错,错误如下

这是因为非Activity类型的Context(如ApplicationContext)并没有所谓的任务栈。解决方案是指定singleTask启动模式
No11:
singleTop和singleTask,如果要调用的Activity已经存在,将会调用它的onNewIntent方法。
No12:
静态设置无法为Activity设定FLAP_ACTIVITY_CLEAR_TOP标识,动态设置无法为Activity设定singleInstance模式
No13:
如果Intent既有显示调用又有隐式调用,以显示调用为主。
No14:
IntentFilter中的过滤信息有action、category、data。一个Activity中可以有多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity。
data由两部分组成,mimeType和URI。mineType指媒体类型(图片、文本、视频等)。
URI结构如下:
<scheme>://<host>:<port>/[path]|<pathPrefix>|<pathPattern>
例如:
http://www.baidu.com:80/search/info
No15:
应用场景
显式Intent :通过指定Intent组件名称来实现的,一般用在知道目标组件名称的前提下,一般是相同的应用程序内部实现的。
隐式Intent: 通过Intent Filter来实现的,它一半用在没有明确指出目标组件名称的前提下,一般用于在不同的应用程序之间。
《android开发艺术探索》读书笔记(一)--Activity的生命周期和启动模式的更多相关文章
- Android开发艺术探索(一)——Activity的生命周期和启动模式
Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...
- Android开发艺术探索读书笔记——01 Activity的生命周期
http://www.cnblogs.com/csonezp/p/5121142.html 新买了一本书,<Android开发艺术探索>.这本书算是一本进阶书籍,适合有一定安卓开发基础,做 ...
- android开发艺术探索学习 之 结合Activity的生命周期了解Activity的LaunchMode
转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50749728 本文出自:[lxk_1993的博客]: 首先还是先介绍下Activity ...
- Android开发艺术探索读书笔记——进程间通信
1. 多进程使用场景 1) 应用某些模块由于特殊需求须要执行在单独进程中. 如消息推送,使消息推送进程与应用进程能单独存活,消息推送进程不会由于应用程序进程crash而受影响. 2) 为加大一个应用可 ...
- android开发艺术探索读书笔记之-------view的事件分发机制
View的点击事件的分发,其实就是对MotionEvent事件的分发过程,即当一个MotionEvent产生后,系统需要把这个事件传递给一个具体的View,而这个过程就是分发过程. 分发过程主要由以下 ...
- 《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
第1章 Activity的生命周期和启动模式 1.1 Activity生命周期全面分析 1.1.1 典型情况下生命周期分析(1)一般情况下,当当前Activity从不可见重新变为可见状态时,onRes ...
- Android开发艺术探索笔记——第一章:Activity的生命周期和启动模式
Android开发艺术探索笔记--第一章:Activity的生命周期和启动模式 怀着无比崇敬的心情翻开了这本书,路漫漫其修远兮,程序人生,为自己加油! 一.序 作为这本书的第一章,主席还是把Activ ...
- Android开发艺术探索学习笔记(一)
第一章 Activity的生命周期和启动模式 1.1Activity的生命周期全面解析 1.1.1典型情况下的生命周期分析 (1)在两个Activity进行切换时,当前的Activity的onPaus ...
- 十分钟掌握Activity的生命周期与启动模式
1. Activity的生命周期 正常情况下的Activity生命周期如下图所示(来自Android Developer): 当资源相关的系统配置变更时(比如设备屏幕方向改变,键盘可见性变化),会导致 ...
- Activity的生命周期和启动模式
Activity的生命周期分析 典型情况下的生命周期.是指在用户参与的情况下,Activity所经过的生命周期的改变. 异常情况下的生命周期.是指Activity被系统回收或者由于当前设备的Confi ...
随机推荐
- git 快速入门
介绍git的基本知识.文件状态.工作区域以及一个简单的操作示例. 目录 1. git相关介绍 2. 文件状态与工作区域 3. 快速使用 1. git相关介绍 1.1 git.github.gitlab ...
- SVN同步时忽略特定文件或文件夹
在MyEclipse中使用SVN同步的时候,经常会提示一些比如.classpath等不需要同步的配置文件,可以通过设置来忽略这一部分的文件或者文件夹. 1.选择菜单Window→Preferences ...
- 【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
需求背景:有个调用统计日志存储和统计需求,要求存储到mysql中:存储数据高峰能达到日均千万,瓶颈在于直接入库并发太高,可能会把mysql干垮. 问题分析 思考:应用网站架构的衍化过程中,应用最新的框 ...
- strstr()与find()
- [译] Linux吃掉了我的内存
英文原文: https://www.linuxatemyram.com/ 作者: Vidar Holen 译者: thinkam 发生了什么? Linux正借用你未使用的内存来做磁盘缓存.这使你的计算 ...
- 溢出问题:overflow后最后一排文字显示不全
溢出字体会显示在padding区域(http://www.divcss5.com/css-hack/c680.shtml) section#xinwen li a h3{ border-bottom: ...
- 【原创】源码角度分析Android的消息机制系列(四)——MessageQueue的工作原理
ι 版权声明:本文为博主原创文章,未经博主允许不得转载. MessageQueue,主要包含2个操作:插入和读取.读取操作会伴随着删除操作,插入和读取对应的方法分别为enqueueMessage和ne ...
- SQL性能优化的几点建议
1. 索引:索引可以提高查询的速度,但不是使用带有索引的字段查询时,索引都会起作用,如下几种特殊情况下,有可能使用带有索引的字段查询时,索引没有起作用:1)使用LIKE关键字的查询语句 如果匹配字符串 ...
- JDBC(二)
三层架构的一些基本报结构如下: domain包:下面是一些实体bean,属性为private,提供属性相对应的set和get方法.一般对应于数据库中的一张数据表,属性对应于数据表中的列. dao包,数 ...
- ehcache memcache redis 三大缓存男高音[转]
原文链接:http://blog.csdn.net/jationxiaozi/article/details/8509732 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特 ...