清除除Android中的一项以外的所有活动

Hun*_*unt 5 android android-activity

在下面,我显示了如何导航我的流程Activities

在此处输入图片说明

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

Intent list = new Intent(AddComplaint.this, B.class);
list.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(list);
Run Code Online (Sandbox Code Playgroud)

但是,我面临两个问题:

  1. B被推出它显示了一段灰色的屏幕,那么它被加载。
  2. 当我从中B退出时,它退出了应用程序,而不是进入A(dashbord)。

我怎样才能解决这个问题?

fra*_*nch 3

我相信你可以通过使用FLAG_ACTIVITY_CLEAR_TOP来实现你想要的。如果您使用此标志发送 Intent,它将被传递到现有的 Activity B,并且堆栈上 B 之上的任何活动(C、D/E)都将完成。

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

示例代码:

Intent list = new Intent(AddComplaint.this, B.class);
        list.setFlags
                (Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(list);
Run Code Online (Sandbox Code Playgroud)