Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何确保一个android活动只在backstack中驻留一次_Android_Android Activity - Fatal编程技术网

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

如何确保一个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、C按以下顺序打开:

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的效果吗?哦,天哪。。。。我怎么会错过呢。可能是由于额外的工作量。。非常感谢。。。。。。。。