我有一個啓動畫面活動,然後登錄活動。我的歷史堆棧的樣子:清除任務中的所有活動?
SplashActivity
LoginActivity
當用戶通過LoginActivity成功登錄,我要開始WelcomeActivity,但清除整個堆棧:
SplashActivity
LoginActivity // launches WelcomeActivity ->
WelcomeActivity
// but now all three are in the history stack, while I only
// want WelcomeActivity in the stack at this point.
有一些標誌,我可以用做那?
// LoginActivity.java
Intent intent = new Intent(this, WelcomeActivity.class);
intent.addFlag(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
finish();
不知道是否使用FLAG_ACTIVITY_CLEAR_TASK會清除所有活動,我的任務或沒有。我可以通過使用startActivityForResult()調用展開堆棧來「手動」執行此操作,但會更脆弱並需要更多代碼進行維護。
謝謝
「不知道是否使用FLAG_ACTIVITY_CLEAR_TASK將清除出在我的任務與否的所有活動。」 - 使用BACK按鈕並親自查看。如果您可以使用BACK按鈕回到以前的活動,那麼他們仍然在後臺。 – 2013-02-19 13:12:10
答案是使用'FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TASK',不是嗎? – 2014-03-31 09:53:46
代碼中有一個錯字...它應該是'.addFlags(...)'而不是'.addFlag'。 – Developer 2015-06-07 23:02:39