Activity的singleTask有什么作用(activity,single task,移动开发)

时间:2024-05-10 05:15:02 作者 : 石家庄SEO 分类 : 移动开发
  • TAG :

    Activity%E7%9A%84singleTask%E6%9C%89%E4%BB%80%E4%B9%88%E4%BD%9C%E7%94%A8

这个函数无非就是根据即将要启动的SubActivity的taskAffinity属性值在系统中查找这样的一个Task:Task的affinity 属性值与即将要启动的Activity的taskAffinity属性值一致。

如果存在,就返回这个Task堆栈顶端的Activity回去。

在上面的 AndroidManifest.xml文件中,没有配置MainActivity和SubActivity的taskAffinity属性,于是它们的 taskAffinity属性值就默认为父标签application的taskAffinity属性值,这里,标签application的 taskAffinity也没有配置,于是它们就默认为包名,即"shy.luo.task"。

由于在启动SubActivity之 前,MainActivity已经启动,MainActivity启动的时候,会在一个新的任务里面启动,而这个新的任务的affinity属性就等于它 的***个Activity的taskAffinity属性值。

于是,这个函数会动回表示MainActivity的ActivityRecord回去.

回到前面的startActivityUncheckedLocked函数中,这里的taskTop就表示MainActivity,它不为 null,于是继续往前执行。由于条件r.launchMode == ActivityInfo.LAUNCH_SINGLE_TASK成立,于是执行下面语句:

函数performClearTaskLocked也是定义在frameworks/base/services/java/com/android/server/am/ActivityStack.java文件中:

本文:Activity的singleTask有什么作用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:怎样深入理解vue中的虚拟DOM和Diff算法下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18