0

要與我正在開發的應用程序斷開連接,我會停止所有活動並啓動LoginActivity。爲此,我使用下面的代碼。 LoginActivity已啓動,但當我點擊手機的後退按鈕時,我再次連接時未提供登錄名和密碼。停止Android應用程序的所有活動和片段

注:我的應用程序中也有片段!

你能幫我嗎?

// After logout redirect user to Loing Activity 
     Intent i = new Intent(_context, LoginActivity.class); 
     // Closing all the Activities 
     i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 

     // Add new Flag to start new Activity 
     i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

     // Staring Login Activity 
     _context.startActivity(i); 

回答

1

呼叫i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)設置標誌Intent.FLAG_ACTIVITY_CLEAR_TOP在Intent標誌。然後,你這樣做:

i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

這臺意向標誌的內容Intent.FLAG_ACTIVITY_NEW_TASK,從而清除您以前設置的標誌Intent.FLAG_ACTIVITY_CLEAR_TOP

您不需要使用Intent.FLAG_ACTIVITY_NEW_TASK,因爲這實際上不會啓動新任務(因爲您的活動全部具有相同的taskAffinity)。

設置Intent.FLAG_ACTIVITY_CLEAR_TOP應該足以做你想做的。但是,您需要確保您的LoginActivity在任務中仍處於活動狀態(即:您不應該在其上調用finish())。如果你的LoginActivity沒有出現在你的任務的活動堆棧中(因爲你已經調用了finish()),那麼Android將創建一個新的LoginActivity實例並將其放在堆棧頂部。

+0

問題解決了,非常感謝你:) – 2014-09-25 23:44:55

相關問題