Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.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 如何清除整个后台堆栈(以及可能的解决方案)_Android_Android Activity - Fatal编程技术网

Android 如何清除整个后台堆栈(以及可能的解决方案)

Android 如何清除整个后台堆栈(以及可能的解决方案),android,android-activity,Android,Android Activity,我有三项活动A、B和C。 A是我申请的主要活动。 A和C也可以从选项菜单启动,B从A启动。 我想要以下行为: 应用程序以:后堆栈为{A}开始 从A导航到B:后堆栈是{A,B} 从选项菜单中,我启动C:后堆栈为{C} 1和2是微不足道的,但我没有成功地让3工作 我尝试了很多FLAG_活动组合,但没有成功 我觉得这是不可能的 我正在考虑创建一个DummyRoot活动,该活动仅用于启动另一个活动(要启动的实际活动名称在Intent.getExtras()中传递)。我可以给这个DummyRoot活动设置

我有三项活动A、B和C。
A是我申请的主要活动。
A和C也可以从选项菜单启动,B从A启动。
我想要以下行为:

  • 应用程序以:后堆栈为{A}开始
  • 从A导航到B:后堆栈是{A,B}
  • 从选项菜单中,我启动C:后堆栈为{C}
  • 1和2是微不足道的,但我没有成功地让3工作

    我尝试了很多FLAG_活动组合,但没有成功
    我觉得这是不可能的

    我正在考虑创建一个DummyRoot活动,该活动仅用于启动另一个活动(要启动的实际活动名称在Intent.getExtras()中传递)。我可以给这个DummyRoot活动设置标志\u activity\u CLEAR\u TOP。
    通过这样做,我将得到

  • 应用程序以DummyRoot(A)开头:back堆栈是{DummyRoot,A}
  • 从A导航到B:后堆栈是{DummyRoot,A,B}
  • 从选项菜单中,我启动DummyRoot(C):后堆栈为{DummyRoot,C}
  • 您是否预见到这种方法的问题?
    首先需要这样做,还是可以以更优雅的方式清除后堆栈?

    因此,当在C中按back时,您希望应用程序退出?如果是这样,您将需要在清单中使用标志,以及在使用意图启动活动时使用标志。这里的组合将允许您清除当前任务,然后使用新活动开始新任务。它似乎不是一个有效的用户体验,但应该可以做到这一点。请仔细阅读文档中的标志,了解它们实际将做什么的更多信息。

    您能指出启动C时,我应该使用哪些标志从后堆栈中删除A/B吗?我确实阅读了文档,但没有找到合适的组合。我会说FLAG_ACTIVITY_CLEAR_TASK将是一个需要查看的任务,并且下面的文档看起来确实是一个很好的候选者,但是。。。它只在API级别11中可用,我必须支持API级别8(首先应该提到这一点)。