2013-07-16 78 views
0

我有一個登錄屏幕,成功登錄後,將轉到LandingPage,然後從LandingPage導航到LastActivity。使用FLAG_ACTIVITY_CLEAR_TOP來安裝已經以finish()結束的活動;

如果我按LastActivity上的後退按鈕,我的導航需要我回到LandingPage。所以我在使用intenet啓動LastActivity時沒有使用finish()

單擊LastActivity上的logOut按鈕應該帶我到LoginPage,它會,但是如果我按下LoginPage上的按鈕,它會將我帶回LandingPage。這是不希望的行爲。 這是我用來導航到活動代碼 -

Intent intent = new Intent(context, LoginActivity.class); 
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        finish(); 
        startActivity(intent); 

我使用這個標誌錯了嗎?

編輯 - 活動 流量 - LoginActivity - >的LandingPage - >從最後一項活動註銷lastActivity ,它應該去loginActivity。

+0

您是否在啓動LandingPage時調用finish()?如果你這樣做,只要刪除它。 –

+0

是的,在調用LandingPage的意圖中,我調用了finish(),但我猜在這種情況下,即使我的「LoginActivity」也不會完成。我對嗎? – Darpan

+0

如果您從LoginActivity調用startActivity(..,LandingPage)然後調用finish(),那麼您的LoginActivity將被銷燬,並且標誌CLEAR_TOP無用,因爲堆棧中沒有LoginActivity。 –

回答

0

你這是什麼東西(如果我理解正確的話):

的LandingPage - > LastActivity - > LoginPage

如果你想回到以前的活動,並清除的頂部

FLAG_ACTIVITY_CLEAR_TOP是有幫助後退堆疊。然而,你在做什麼是不小心讓自己回到你的背部底部的一個點。

編輯:您是否在登出時嘗試使用FLAG_ACTIVITY_CLEAR_TASK?這應該清除堆棧中的所有其他活動。注意這應該與FLAG_ACTIVITY_NEW_TASK標誌一起使用。

+0

我正在檢查這個flag_activity_clear_task。 btw我的活動週期是LoginActivity> landingPage - > LastActivity。 當我從上次活動中註銷時,它應該自動轉到LoginActivity,而不會將任何東西保留在堆棧中。 – Darpan