清除除android中的一个以外的所有活动

时间:2016-05-14 08:54:32

标签: android android-activity

下面我展示了我想要如何浏览Activities的流程:

enter image description here

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

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

但是,我面临两个问题:

  1. B启动时,它会暂时显示灰色屏幕,然后会加载。
  2. 当我从B返回时,它退出应用程序,而不是转到A(仪表板)。
  3. 我该如何解决这个问题?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

我认为FLAG_ACTIVITY_CLEAR_TASK正在清除堆栈中的所有活动。

再次从活动B返回到A,而不改变现有代码的任何内容,简单地覆盖活动B中的onBackPress()方法和startActivity A../ / p>