2

看起来我们在网上发布的每个教程都提到FLAG_ACTIVITY_NEW_TASK如果我们正在启动的活动当前没有在任务中运行,则启动一个新任务。但似乎使用FLAG_ACTIVITY_NEW_TASK不会总是创建一个新任务,它只是如果没有任务可用于我们需要运行的活动,则创建一个新任务,就像我们BroadCastReceiver使用内部上下文从 a 启动活动时一样onReceive()

根据网上所有的教程,

假设我们的 BackStack 中有以下活动-

A->B->C

现在如果我们想启动一个新的 Activity D,那么它应该在一个新任务中启动,但这似乎没有发生,并且活动 D 是在同一个任务中启动的,我们有最终的 backstack

A->B->C->D

谁能澄清一下?

我知道设置 taskAffinity 将强制创建一个新任务,但这带来了另一个问题:

试试自己:

假设我们启动了两个Activity:

A-B

然后我们再次使用 android:taskAffinity** 启动另一个 Activity,所以现在我们有了**

A-B | C
A-B (on the same task)
C (on other task)

现在我们再次开始A-B from C,所以现在我们的 BackStack 看起来像:

A-B|C-A-B
A-B(on the same task)
C-A-B(on other task)

​</p>

现在,问题是如果我们再次尝试从 B 启动 C(从任务 CAB),什么也没有发生,C 将无法启动(我不知道为什么?)

4

0 回答 0