Android应用程序组件Activity的"singleTask"(10)

移动开发 Android
它是例行性地检查当前任务顶端的Activity,是否是即将启动的Activity的实例,如果是否的话,在某些情况下,它什么也不做,就结束这个函数调用了。

它是例行性地检查当前任务顶端的Activity,

是否是即将启动的Activity的实例,

如果是否的话,在某些情况下,它什么也不做,就结束这个函数调用了。

这里,当前任务顶端的Activity为MainActivity,它不是SubActivity实例,于是继续往下执行:

[java] 
view plaincopy boolean newTask = false
  // Should this be considered a new task? 
  if (r.resultTo == null && !addingToTask 
  && (launchFlags&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) { 
  ...... 
  } else if (sourceRecord != null) { 
  if (!addingToTask && 
  (launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) { 
  ...... 
  } else if (!addingToTask && 
  (launchFlags&Intent.FLAG_ACTIVITY_REORDER_TO_FRONT) != 0) { 
  ...... 
  } 
  // An existing activity is starting this new activity, so we want 
  // to keep the new one in the same task as the one that is starting 
  // it. 
  r.task = sourceRecord.task; 
  ...... 
  } else { 
  ...... 
  } 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

这里首先将newTask变量初始化为false,表示不要在新的任务中启动这个SubActivity。由于前面的已经把addingToTask设置 为true,因此,这里会执行中间的else if语句,即这里会把r.task设置为sourceRecord.task,即把SubActivity放在MainActivity所在的任务中启 动。

***,就是调用startActivityLocked函数继续进行启动Activity的操作了。后面的操作这里就不跟下去了,有兴趣的读者可以参 考两篇文章Android应用程序启动过程源代码分析和Android应用程序内部启动Activity过程(startActivity)的源代码分 析。

责任编辑:闫佳明 来源: bbs.9ria
相关推荐

2014-05-27 15:04:15

AndroidActivitysingleTask

2014-05-27 14:59:24

AndroidActivitysingleTask

2014-05-27 14:33:37

AndroidActivitysingleTask

2014-05-27 14:16:08

AndroidActivitysingleTask

2014-05-27 15:07:07

AndroidActivitysingleTask

2014-05-27 15:11:20

AndroidActivitysingleTask

2014-05-27 15:17:46

AndroidActivitysingleTask

2014-05-27 14:09:52

AndroidActivitysingleTask

2014-05-27 14:44:26

AndroidActivitysingleTask

2014-05-27 14:28:25

AndroidActivitysingleTask

2014-05-27 14:12:49

AndroidActivitysingleTask

2010-02-06 15:26:11

Android应用程序

2009-08-14 17:08:00

Android应用程序

2013-01-17 15:51:42

Android开发应用程序组件

2019-01-04 10:45:31

Windows 10Android应用程序

2013-07-12 15:40:47

Android技巧

2019-07-05 08:00:00

WindowsWindows 10程序

2010-11-11 14:38:37

2012-04-25 22:56:10

Android

2019-09-26 08:33:51

Nginx技术Java
点赞
收藏

51CTO技术栈公众号