我对启动模式的文档有点困惑。文件特别提到:
堆栈中的活动从不重新排列,只从堆栈中推送和弹出
但在后面的flag_activity_new_task
部分中会提到:
如果一个任务已经在为您现在启动的activity运行,那么该任务将显示在前台,并恢复其上一个状态,并且activity将在onNewIntent()中接收新的意图。
这里没有说明activity是否在堆栈的顶部,这让我想知道不重新排列堆栈怎么可能做到这一点。
例如,如果我们有活动A和B,A启动B:
A<-B
现在,如果b
使用flag_activity_new_task
启动a
,这是否意味着它将恢复上一个实例?即。后面的堆栈将是:
B<-A
或者我们会:
A<-B<-A
所有添加到backstack的目标都将弹出,直到您请求的目标。因此,在您的示例中,结果应该只有带有onNewIntent()
方法调用的activity A。请参考本文中有关任务和后栈的示例