Android中Activity和task,活动亲和力,启动模式,活动状态以及生命周期,激活钝化

简介: Activity和task: android通过保持所有activity在同一个task中来维护用户的经历-典型是在launcher选择的 应用,栈顶活动是交互活动,back后,pop栈,即使涉及多个实例活动,不会重新管理,只有pop和push  task:  task是活动的栈,task的值是作为整体设置给root activity的.  activity:  一个task中

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:钝化

目录
相关文章
|
4月前
|
Android开发 开发者
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
Android UI设计: 请解释Activity的Theme是什么,如何更改应用程序的主题?
45 1
|
4月前
|
数据库 Android开发 开发者
Android基础知识:请解释Activity的生命周期。
Android基础知识:请解释Activity的生命周期。
47 2
|
4天前
|
XML Java Android开发
利用Bundle实现Android Activity间消息的传递
利用Bundle实现Android Activity间消息的传递
10 2
|
4天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
10 3
|
7天前
|
Shell Android开发
Android Activity重写dump方法实现通过adb调试代码
Android Activity重写dump方法实现通过adb调试代码
12 0
|
1月前
|
Java Android开发
Android四大组件之Activity组件
Android四大组件之Activity组件
|
2月前
|
Android开发
Android的启动模式
Android的启动模式
13 0
|
3月前
|
Android开发
[Android 四大组件] --- Activity
[Android 四大组件] --- Activity
25 1
|
4月前
|
Android开发
Android基础知识:什么是Fragment?与Activity的区别是什么?
Android基础知识:什么是Fragment?与Activity的区别是什么?
348 54
|
5月前
|
XML 安全 Java
Android Studio App开发入门之活动Activity中为活动补充附加信息讲解及实战(附源码 超详细必看)
Android Studio App开发入门之活动Activity中为活动补充附加信息讲解及实战(附源码 超详细必看)
37 0