2016-05-14 28 views
4

下面我展示我如何想浏览流中的所有活动,我Activities清除除一个在android系统

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(dashbord)。

我该如何解决这个问题?

+0

使用Intent.FLAG_ACTIVITY_CLEAR_TOP。 –

回答

3

我相信你可以通过使用FLAG_ACTIVITY_CLEAR_TOP来达到你想要的效果。如果您使用此标志发送一个意向,它将被传送到现有的活动B,并且堆栈(C,D/E)上的B上方的任何活动都将完成。

使用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); 
+0

它会重新打开活动B,我们可以恢复活动B吗? – Prasad

0

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

要再次从活动B返回到A,而不更改任何内容到现有代码,只需简单地覆盖活动B中的onBackPress()方法和启动活动A即可。