2013-05-22 23 views
3

活動流在我的應用程序。如何清除以前的所有活動〜?

WelcomeActivity - > SignInActivity - > SignUpActivity - > TabsActivity(這是主要的) - > ...


Activity Stack


我想關閉所有以前的活動(歡迎,登錄,註冊)時啓動TabsActivity。

我嘗試幾種方法...

  1. TabsActivity。清除任務上的發射=真?但不工作(也許)

  2. TabsActivity。啓動模式= singleTask?但不行

但我並不想「節省3個活動,並呼籲各activity.finish()」

根據不同的情況,「可用2個或4個活動不是3」,或 「我不知道活動堆棧中有什麼活動」。


我想清除以前的所有活動,無任何情況。

幫我:)

對不起我可憐的英語......謝謝。

回答

1

試試這個,

Clear all Activies。這裏有一些很好的教程來解決清晰的堆棧競賽。請通過它。

感謝

+0

FLAG_ACTIVITY_CLEAR_TOP不起作用。但是這工作正常。 – ChangUZ

1

嘗試增加FLAG_ACTIVITY_NEW_TASK作爲FLAG_ACTIVITY_CLEAR_TOP在文檔中描述:

該啓動模式也可用於結合 良好效果與 FLAG_ACTIVITY_NEW_TASK:如果用於 啓動一個任務的根活動,它 會將該任務的當前運行的 實例帶到前臺 ,然後將其清除爲其 根狀態。例如,在通知 管理器啓動 活動時,這是特別有用的,例如 。

Intent intent = new Intent(this, TabActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
0

清除堆棧中的Android,從那裏您所呼叫tabActivity

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

0

使用

Intent intent = new Intent(getApplicationContext(), ClassToLaunch.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 

這將完成先前的活動

0

要關閉以前的活動,你應該startActivityForResult開始新的活動,然後整理與面漆()調用的setResult(值)以前的活動當前活動之前,以前的活動會再拿到一個回調在那裏你可以調用finish()來完成前一個活動。

5

如果我理解正確的話,你可能想嘗試用下面的代碼開始你TabsActivity

Intent intent = new Intent(getApplicationContext(), TabsActivity.class); 
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 

標誌Intent.FLAG_ACTIVITY_CLEAR_TOP清除歷史記錄。

相關問題