2016-05-14 80 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即可。