当launchMode =“singleTask”重新打开活动时,后台堆栈会发生什么?

时间:2014-01-10 02:42:16

标签: android android-intent android-activity

想象一个应用程序,其中 Activity A 是默认的Activity,并且launchMode =“singleTask”。该应用程序将打开活动A.用户浏览应用程序,并在某些时候再次导航到活动A(向前移动,而不是向后按)。根据Android文档,因为launchMode =“singleTask”,所以会发生这种情况:

  

系统在新任务和路由的根目录下创建活动   意图。但是,如果活动的实例已经存在   存在,系统通过a将意图路由到现有实例   调用它的onNewIntent()方法,而不是创建一个新方法。

活动A存在于后台堆栈上,因此它将接收对onNewIntent()的调用。我想知道的是,当活动A从后堆栈的底部带到顶部时,其他活动会发生什么?

它们是否被弹出或破坏或者是否会发生其他事情?他们甚至在同一堆栈中吗?

提前致谢...

1 个答案:

答案 0 :(得分:0)

来自Android文档:   http://developer.android.com/images/fundamentals/diagram_backstack_singletask_multiactivity.png

A representation of how an activity with launch mode "singleTask" is added to the back stack. If the activity is already a part of a background task with its own back stack, then the entire back stack also comes forward, on top of the current task.