如何确保一个android Activity只驻留在backstack中一次

时间:2012-03-08 13:21:00

标签: android android-activity

假设活动(A,B,C)按以下顺序打开:

A -> B -> A -> C-> A

现在正常情况下,活动后台会看起来

| A |
| C |
| A |
| B |
| A |

有什么方法可以确保Activity A只在背斜堆中驻留一次?或者换句话说,Backstack看起来像:

| A |
| C |
| B |

编辑:我希望每次都启动新的活动实例,并从堆栈中删除所有先前的实例。甚至可以使用内置方案吗?

4 个答案:

答案 0 :(得分:4)

听起来你想要使用意图标志FLAG_ACTIVITY_REORDER_TO_FRONT

答案 1 :(得分:2)

您需要为清单中的每项活动设置android:launchMode="singleTask"android:launchMode="singleInstance"

答案 2 :(得分:0)

你的清单中的

android:launchMode可能有所帮助:

http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

它适用于应用程序的主要活动,而不是堆栈中的任意活动。

编辑:看看NickT的答案,我已经投了赞成票:)

答案 3 :(得分:0)

如果您希望A仍处于开头,那么您似乎想要将B和C作为结果的活动启动。看到 Activity.startActivityForResult

这样,原始活动A将启动B和C,当B和C退出时,它们将返回原始A。

否则,如果你想让A走到顶端NickT有正确的答案。