如何确保一个android活动只在backstack中驻留一次
假设活动A、B、C按以下顺序打开:如何确保一个android活动只在backstack中驻留一次,android,android-activity,Android,Android Activity,假设活动A、B、C按以下顺序打开: A -> B -> A -> C-> A 现在在正常情况下,活动回退看起来 | A | | C | | A | | B | | A | 是否有任何方法可以确保活动A只驻留在backbackback中一次?或者换言之,后退看起来像: | A | | C | | B | 编辑:我希望每次都启动活动的新实例,并从堆栈中删除所有以前的实例。甚至可以使用内置方案吗?听起来您想使用意向标志听起来您想使用意向标志在清单中使用android:la
A -> B -> A -> C-> A
现在在正常情况下,活动回退看起来
| A |
| C |
| A |
| B |
| A |
是否有任何方法可以确保活动A只驻留在backbackback中一次?或者换言之,后退看起来像:
| A |
| C |
| B |
编辑:我希望每次都启动活动的新实例,并从堆栈中删除所有以前的实例。甚至可以使用内置方案吗?听起来您想使用意向标志听起来您想使用意向标志在清单中使用android:launchMode可能会有帮助: 不过,它有点适合于应用程序的主要活动,而不是堆栈中的任意活动
编辑:请参阅NickT的答案,我对此进行了投票:您清单中的android:launchMode可能会有帮助: 不过,它有点适合于应用程序的主要活动,而不是堆栈中的任意活动
编辑:请看NickT的答案,我已经投了赞成票:如果您希望A仍然处于开始阶段,那么听起来您希望将B和C作为结果活动来启动。看见 这样,原始活动A将启动B和C,当B和C退出时,它们将返回原始活动A
否则,如果你想让A进入最顶端,答案是正确的 如果您希望A仍然处于开始阶段,那么听起来您希望启动B和C作为结果活动。看见 这样,原始活动A将启动B和C,当B和C退出时,它们将返回原始活动A
否则,如果你想让A进入最顶端,答案是正确的 您需要为清单中的每个活动设置android:launchMode=singleTask或android:launchMode=singleInstance。您需要为清单中的每个活动设置android:launchMode=singleTask或android:launchMode=singleInstance。您好,感谢您的帮助。。。但我希望每次都启动新的活动实例,并将所有以前的实例从堆栈中删除?重新初始化活动A的数据并在onResume中重置其状态不会达到启动新活动A的效果吗?哦,天哪。。。。我怎么会错过呢。可能是由于额外的工作量。。非常感谢……嗨,谢谢你的帮助。。。但我希望每次都启动新的活动实例,并将所有以前的实例从堆栈中删除?重新初始化活动A的数据并在onResume中重置其状态不会达到启动新活动A的效果吗?哦,天哪。。。。我怎么会错过呢。可能是由于额外的工作量。。非常感谢。。。。。。。。