我正在浏览 Android Task 和 Back Stack 文档,有一次他们提到了这一点:
如果您的应用程序允许用户从多个活动启动特定活动,则会创建该活动的一个新实例并将其推送到堆栈上(而不是将任何先前的活动实例置于顶部)。因此,您的应用程序中的一个 Activity 可能会被多次实例化(甚至来自不同的任务),如图 3 所示。因此,如果用户使用“后退”按钮向后导航,则该 Activity 的每个实例都会按照它们的顺序显示已打开(每个都有自己的 UI 状态)
举个例子:
我有 Activity A 启动 Activity B 启动 Activity C 启动 D。
堆栈是 A->B->C->D现在可以从 D 开始 C 所以当我们从 D 开始 C 堆栈将是
A->B->C->D->C
现在,我希望 Activity 在 Back Stack 中只有 1 个实例或只有 1 个条目,而不是这种标准行为。“SingleTop”将不起作用,因为当我们从 D 启动 Activity C 时它不在顶部。
我可能会遗漏一些东西,但有什么办法可以确保活动只有 1 个 backstack 条目?
谢谢普拉内