0

活动 A 是我的应用程序的主页。

A -> B -> C

C 以 FLAG_ACTIVITY_CLEAR_TOP 开头 A 以正确获取主页 A。这工作正常,堆栈简单地变成,

A

但是可以使用通知管理器直接调用 B。

B -> C -> A

因此,即使我在 C 中启动 A 时使用 FLAG_ACTIVITY_CLEAR_TOP 标志,B 和 C 在 A(主页)之前的堆栈中仍然存在,并且在从 A 按下返回按钮时,它会返回到 B 和 C。

我不想要这种行为。在从 C 开始活动 A 时,堆栈应该只有 A。我该怎么做?

4

2 回答 2

0

如果你不关心导航,你可以将 B 和 C 都定义为android:noHistory

顺便提一句。我在某个时候问了一些相关的问题。您可能会感兴趣地看一下它: 如何始终从 Android 上的启动活动开始?

于 2013-01-24T20:06:09.050 回答
0

我建议您从通知开始ActivityA(而不是ActivityB),因为您显然希望该活动始终是您任务中的根活动。为Intent传递给Notification. 然后,在onCreate()of 中ActivityA,您应该检查是否存在额外的内容,如果存在,请立即开始ActivityB。这应该为您提供所需的导航行为。

于 2013-03-21T11:17:19.720 回答