假设活动(A,B,C)按以下顺序打开:
A -> B -> A -> C-> A
现在正常情况下,活动后台会看起来
| A |
| C |
| A |
| B |
| A |
有什么方法可以确保Activity A
只在背斜堆中驻留一次?或者换句话说,Backstack看起来像:
| A |
| C |
| B |
编辑:我希望每次都启动新的活动实例,并从堆栈中删除所有先前的实例。甚至可以使用内置方案吗?
答案 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有正确的答案。