Android中Activity和task,活动亲和力,启动模式,活动状态以及生命周期,激活钝化
2012-07-20 23:25
746 查看
Activity和task:
android通过保持所有activity在同一个task中来维护用户的经历-典型是在launcher选择的
应用,栈顶活动是交互活动,back后,pop栈,即使涉及多个实例活动,不会重新管理,只有pop和push
task:
task是活动的栈,task的值是作为整体设置给root activity的.
activity:
一个task中的所有的activity作为整体进行移动.
activity和task的关系,以及同一task内activity的行为可通过intent对象的flag标记和清单文件的activity元素
进行控制.请求和相应都有一个说法.
Intent flag如下:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
<activity>属性有
taskAffinity
launchMode
allowTaskReparenting
alwaysRetainTaskState
finishOnTaskLaunch
Affinity和task:亲和力和task
默认时,应用程序所有activity彼此具有一个Affinity-属于同一任务.但可设置单独的activity的Affinity(通过
<activity>属性),不同应用程序中的activity也可以定义相同的Affinity,或者同一应用,不同Affinity.
Affinity生效需要两个条件:Intent对象包含FLAG_ACTIVITY_NEW_TASK标记和allowTaskReparenting=true
FLAG_ACTIVITY_NEW_TASK:
如果含该标记,系统查找不同的任务来容纳新的activity,通常是新建task.但不一定这样,如果已经存在具有同一
Affinity的task,新的activity会在那个task中启动,若没有,开始新的任务.
allowTaskReparenting
若设置该属性为true,该activity可以彼task回到前台时有开始时的task移动到那个task上.
launch Mode:
standard:每次访问实例化新的对象.
singleTop:如果目标activity在栈顶,直接返回.否则实例化.
singleTask:是单例,通常设置给root activity.由此开启的activity具有相同的taskid
singleInstance:是单例,通常设置给root activity.由此开启的activity具有不同的taskid
task:是activity的栈,
activity状态:
激活态:栈顶,正在交互
暂停态:可见,被不完全覆盖
停止态:不可见,完全覆盖.
activity生命周期循环:
完整周期:onCreate() ---> onDestroy()[停止态]
可视周期:onStart() --> onStop();[暂停态]
前台周期:onResume()--->onPause();[激活态]
onCreate() --- onStart() --- onResume() --- onPause() -- onStop -- onDestory()
| | | |
| |-----<---- |
|------------<---- onRestart() -------------|
active:激活
deactive:钝化
android通过保持所有activity在同一个task中来维护用户的经历-典型是在launcher选择的
应用,栈顶活动是交互活动,back后,pop栈,即使涉及多个实例活动,不会重新管理,只有pop和push
task:
task是活动的栈,task的值是作为整体设置给root activity的.
activity:
一个task中的所有的activity作为整体进行移动.
activity和task的关系,以及同一task内activity的行为可通过intent对象的flag标记和清单文件的activity元素
进行控制.请求和相应都有一个说法.
Intent flag如下:
FLAG_ACTIVITY_NEW_TASK
FLAG_ACTIVITY_CLEAR_TOP
FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
FLAG_ACTIVITY_SINGLE_TOP
<activity>属性有
taskAffinity
launchMode
allowTaskReparenting
alwaysRetainTaskState
finishOnTaskLaunch
Affinity和task:亲和力和task
默认时,应用程序所有activity彼此具有一个Affinity-属于同一任务.但可设置单独的activity的Affinity(通过
<activity>属性),不同应用程序中的activity也可以定义相同的Affinity,或者同一应用,不同Affinity.
Affinity生效需要两个条件:Intent对象包含FLAG_ACTIVITY_NEW_TASK标记和allowTaskReparenting=true
FLAG_ACTIVITY_NEW_TASK:
如果含该标记,系统查找不同的任务来容纳新的activity,通常是新建task.但不一定这样,如果已经存在具有同一
Affinity的task,新的activity会在那个task中启动,若没有,开始新的任务.
allowTaskReparenting
若设置该属性为true,该activity可以彼task回到前台时有开始时的task移动到那个task上.
launch Mode:
standard:每次访问实例化新的对象.
singleTop:如果目标activity在栈顶,直接返回.否则实例化.
singleTask:是单例,通常设置给root activity.由此开启的activity具有相同的taskid
singleInstance:是单例,通常设置给root activity.由此开启的activity具有不同的taskid
task:是activity的栈,
activity状态:
激活态:栈顶,正在交互
暂停态:可见,被不完全覆盖
停止态:不可见,完全覆盖.
activity生命周期循环:
完整周期:onCreate() ---> onDestroy()[停止态]
可视周期:onStart() --> onStop();[暂停态]
前台周期:onResume()--->onPause();[激活态]
onCreate() --- onStart() --- onResume() --- onPause() -- onStop -- onDestory()
| | | |
| |-----<---- |
|------------<---- onRestart() -------------|
active:激活
deactive:钝化
相关文章推荐
- Android中Activity生命周期以及启动模式
- Android的Activity生命周期以及四种启动模式
- Android笔记:Activity的生命周期以及启动模式
- Android中的task作用和Activity启动模式以及各种启动Flag的含义
- Android -- Activity的生命周期,状态保存与恢复,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
- Android-Activity的四状态、七生命周期、和四启动模式
- 基础总结篇:Activity生命周期 四种启动模式 以及TASK
- Android-Activity的四状态、七生命周期、和四启动模式
- Android-Activity的四状态、七生命周期、和四启动模式
- Android -- Activity的生命周期,状态保存与恢复,Activity四种启动模式 Standard, SingleTop,SingleTask,SingleInstance
- 《Android 开发艺术探索》随手笔记——第一章Activity生命周期和启动模式
- Android中Activity四种启动模式和taskAffinity属性详解
- Android - 界面跳转,显式/隐式意图,四大组件之Activity,Activity生命周期,横竖屏,任务栈启动模式
- Android中Activity四种启动模式和taskAffinity属性详解
- Android开发艺术探索--Activity生命周期和启动模式
- Android Activity的启动模式以及Intent的启动Activity的启动标记
- Android开发笔记----Activity再学习(生命周期、启动模式、intent-filter)
- Android Activity的生命周期和启动模式(一)——典型情况下的生命周期分析
- android 中activity的启动模式是singleTask时清除activity的栈顶activity的生命周期小计
- Android中Activity四种启动模式和taskAffinity属性详解