《Android开发艺术探索》——笔记(一)
来源:互联网 发布:ff14捏脸数据下载 编辑:程序博客网 时间:2024/05/22 21:38
第一章 Activity的生命周期和启动模式
1.1 典型情况下的生命周期分析
首先主要是Activity的生命周期
onCreate——(onRestart)——onStart——onResume——onPause——onStop——onDestroy
接下来是从源码的角度来分析A的onPause和B的onResume哪个先执行,这里先过。知道是A的onPause先,然后是B的onResume即可。(p4-p6)
1.2 异常情况下的生命周期分析
1.2.1 资源相关的系统配置发生改变导致Activity被杀死并重新创建
在onCreate和onRestoreInstanceState里都有savedInstanceState,都可以用于获取之前存储的内容,但区别在于前者需要判断是否为空,后者不需要,后者也是官方推荐的做法。
1.2.2 资源内存不足导致低优先级的Activity被杀死
优先级:前台>可见非前台(如弹出Dialog)>后台
通过配置configChanges属性来让系统不重新创建Activity。
注:要注意screenSize和smallestScreenSize两个特殊属性,它们跟编译选项有关,跟运行环境无关。
1.3 Activity的启动模式
1.3.1 standard
系统默认的启动模式,每次都会创建新实例。
当使用非Activity类型的Context(如ApplicationContext)那么就会报错,因为该模式下的Activity默认进入启动它的Activity所属的任务栈中。所以可以通过FLAG_ACTIVITY_NEW_TASK标记来为它创建一个新的任务栈来解决。
1.3.2 singleTop
如果Activity位于栈顶,则不会被重新创建,同时会回调onNewIntent。
1.3.3 singleTask
一种单实例的模式,同样也会回调onNewIntent,并且其具有clearTop的功能,可以将在它之上的Activity都给清空。
1.3.4 singleInstance
singleTask的加强版,单独位于一个任务栈中。
1.4 IntentFilter的匹配规则
包括action,category和data
只有一个Intent同时匹配action类别、category类别和data类别才算完全匹配;
一个Activity可以又多个intent-filter,一个Intent只要能匹配任何一组intent-filter即可成功启动对应的Activity。
1.4.1 action的匹配规则
Intent中的action存在且必须和过滤规则中的其中一个action相同,即视为成功。
1.4.2 category的匹配规则
Intent中可以没有category,但一旦有了,不管有几个,都要能和过滤规则中的任何一个category相同。
1.4.3 data的匹配规则
- 《Android开发艺术探索》——笔记(一)
- 《Android开发艺术探索》阅读笔记——View事件体系(一)
- 《Android开发艺术探索》笔记——Bitmap的加载和Cache(一)
- 《Android开发艺术探索》学习笔记(一)
- 《android开发艺术探索》学习笔记(一)
- Android开发艺术探索(研读笔记)——03-Android中的IPC机制(一)
- Android开发艺术探索读书笔记(一)
- Android开发艺术探索读书笔记(一)
- android开发艺术探索(一)
- 《Android开发艺术探索》笔记(1)
- 《Android开发艺术探索》笔记——Drawable
- 《Android开发艺术探索》笔记
- 《Android开发艺术探索》笔记
- 任玉刚【Android开发艺术探索】读后笔记一
- Android开发艺术探索笔记一:Activity的启动模式
- 开发艺术探索阅读笔记—01
- 开发艺术探索阅读笔记—02
- 《Android 开发艺术与探索》笔记——(10)Android 的消息机制
- cloudify的基础总结
- POJ
- TensorFlow搭建和IDE
- boost学习之noncopyable
- 线程interrupt方法
- 《Android开发艺术探索》——笔记(一)
- 跟我一起写 Makefile(二)
- 完善C#汉字转拼音首字母代码
- 有关WLAN与wifi、WPAN与Bluetooth、WPAN与802.15、wifi与802.11、WiMAX与802.16等关系的一点理解
- ES6新特性概览
- 安利 lca
- CANopen通信之PDO通信
- .NET利用AccessDatabaseEngine作为辅助工具实现导入EXECL表数据
- uuid简介