Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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,下面我展示了我想如何导航我的活动的流程: 我尝试在D和E中编写以下代码: Intent list = new Intent(AddComplaint.this, B.class); list.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(list); 然而,我面临两个问题: 当B启动时,它会显示一段时间的灰色屏幕,然后加载 当我从B返回时,它退出应用程序,而不是

下面我展示了我想如何导航我的
活动的流程:

我尝试在
D
E
中编写以下代码:

Intent list = new Intent(AddComplaint.this, B.class);
list.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(list);
然而,我面临两个问题:

  • B
    启动时,它会显示一段时间的灰色屏幕,然后加载
  • 当我从
    B
    返回时,它退出应用程序,而不是进入
    A
    (dashbord)

  • 如何解决这个问题?

    我认为FLAG\u ACTIVITY\u CLEAR\u任务是从堆栈中清除所有活动


    要再次从活动B返回到A,而不对现有代码进行任何更改,只需在活动B中使用Override onBackPress()方法,然后在其中启动活动A。

    我相信您可以通过使用。如果使用此标志发送意图,它将被传递到现有的活动B,堆栈(C、D/E)上B以上的任何活动都将完成

    使用将完成堆栈上以前的所有活动,这将使B成为唯一剩余的活动-解释为什么在单击“上一步”时退出应用程序。灰色背景与活动管理无关,表明该活动只是需要一段时间来调用onCreate()

    示例代码:

    Intent list = new Intent(AddComplaint.this, B.class);
            list.setFlags
                    (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(list);
    

    使用Intent.FLAG\u ACTIVITY\u CLEAR\u TOP。它将重新打开活动B,我们可以继续活动B吗?