Activity 生命周期(Android开发艺术探索读书笔记)
来源:互联网 发布:大数据搜索算法 编辑:程序博客网 时间:2024/05/22 03:26
启动过程
启动过程复杂
Instrumention发出启动请求
通过binder,连接AMS,AMS维护一个ActivityStack(负责Activity的状态同步),ActivityStack通过ActivityThread同步Activity的状态,从而完成生命周期方法的调用.
一个activity启动一个Activity的时候:
old onPause->new onCreate->new onStart->new onResume->old onStop
onPause尽量不执行耗时操作,为了尽快把新的Activity show 出来
这种模式应该会兼容新的版本的Android
异常情况下的生命周期的分析
Activity
某些View会保存既定的数据状态,比如TextView(选中,文字),ListView(滑动位置)
onSaveInstanceState(Bundle)
调用时机在onStop之前,跟onPause没用既定的时序关系,系统只会在Activity即将被销毁并且有机会重新显示的情况下才会去调用它。
onRestoreInstanceState(Bundle)
异常恢复一定会被调用,参数有值,onCreate(Bundle)的参数不一定有值,所以要判断是否为空值!
onConfigurationChanged()
配置android:configChanges
可让某项内容改变而不重建Activity
这样onConfigurationChanged会回调
Activity启动模式LaunchMode
standard:默认,每次启动都会重新创建一个新的实例。
singleTop:栈顶复用模式。如 任务栈顶为同一个Activity,不会重新创建实例,所以不会回调onCreate和onStart,会回调onNewIntent
singleTask:栈内复用模式。跟android:taskAffinity配合使用,如果没有启动的activity的任务栈,就新建一个,压新的activity入栈,如果有,并且实例已存在,实例上面的Activity全部出栈,回调onNewIntent,这里具有clearTop的功能!
singleInstance: 单实例模式。加强的singleTask模式,拥有singleTask所有特性。具有这种模式的Activity只能单独位于一个任务栈.
taskAffinity (任务相关性)
allowTaskReparenting(设置为true时,会回到重新回到所属的任务栈,默认包名的任务栈或者是taskAffinity 制定的任务栈)
AndroidMenifest设置
代码Intent设置(优先)
命令adb shell dumpsys activity可查看手机activity的信息
IntentFilter的匹配规则
显式调用,(指定Component)
隐式调用,(action,category,data)
action匹配规则:
一个过滤规则中可以有多个action,那么只要Intent中的Action能够和过滤规则中的任何一个action相同即可匹配成功。(setActoin)
category匹配规则:
一旦Intent有Category,不管有多少个,每个都要能和过滤规则中的任何一个category相同。(addCategory)
data匹配规则:
和action相似,它要求intent中必须含有data数据,并且data数据能够完全匹配过滤规则中的某一个data.
PackageManager.resolveActivtity or Intent.resolveActivtity(找出最佳的匹配的Activity)
PackageManager.queryActivities
(找出所有匹配的activities)
- Android Activity生命周期(Android艺术开发探索读书笔记)
- Activity 生命周期(Android开发艺术探索读书笔记)
- Android开发艺术探索读书笔记(一):Activity生命周期
- Activity生命周期和启动模式 - Android开发艺术探索读书笔记(第一章)
- Android开发艺术探索-Activity的生命周期
- <<Android开发艺术探索>>读书笔记--Activity LaunchMode
- Android开发艺术探索读书笔记-Activity
- Android开发艺术探索笔记(1)- Activity的生命周期
- 《Android开发艺术探索》读书笔记--part1 Activity的生命周期和启动模式
- 《Android开发艺术探索》读书笔记 (1) 第1章 Activity的生命周期和启动模式
- 《Android开发艺术探索》读书笔记——Activity的生命周期和启动模式
- 【读书笔记】【Android 开发艺术探索】第1章 Activity 的生命周期和启动模式
- Activity的生命周期和启动模式-Android开发艺术探索读书笔记第一章
- Android开发艺术探索读书笔记 第一章 Activity的生命周期和启动模式
- 【Android开发艺术探索读书笔记】 第一章 Activity的生命周期与启动模式
- 《Android开发艺术探索》读书笔记-第一章 Activity的生命周期和启动模式
- 《Android开发艺术探索》读书笔记之Activity的生命周期与启动模式
- Android开发艺术探索学习-老生常谈Activity生命周期
- 基于TCP和HTTP协议的RPC简单实现
- Zabbix3.0 图像中文显示乱码之解决方案
- Linux下逻辑地址、线性地址、物理地址详细总结
- Sevelet、Jsp、Tomcat、Java版本对应关系
- cocos2dx-js 格式化字符串
- Activity 生命周期(Android开发艺术探索读书笔记)
- 封装自己的js库(一)---仿照JQuery
- 一次非常有意思的 SQL 优化经历
- 同步 异步 阻塞 非阻塞
- 用好这几个git命令,轻松多任务并行
- 如何对于几百行SQL语句进行优化?
- WebViewClient 和 WebChromeClient的使用区别
- abstract修饰符说明
- PHP是最好的语言吗?