2010-05-10 51 views
3

這可能在Android應用程序中嗎?我想這樣做,無論用戶啓動activityA多少次,當他們點擊後退按鈕時,他們將永遠不會獲得多於一次的activityA。如何限制Android應用程序堆棧上相同活動的數量

什麼我發現在我當前的代碼是,我只有兩個選擇:1。 我可以調用finish()在activityA,這將阻止它通過後退按鈕被完全訪問,或 2.我做不要調用finish(),然後如果用戶在使用過程中啓動了activityA(n)次,那麼在點擊後退按鈕時將會有(n)個實例。

同樣,我想通過點擊後退按鈕來訪問activityA,但沒有理由在堆棧上保留同一活動的多個實例。有沒有辦法將隊列中活動的實例數量限制爲1?

回答

7

每次啓動一個Activity時,一個選項是使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,這樣如果存在一個實例,它將被帶到堆棧的前面,而不是每次創建。 這樣就可以確保只有一個Activity會保留在堆棧上。

+1

你知道Android 1.5支持該標誌嗎?我認爲這只是2.0 ...我設計爲1.5。 THanks – JohnRock 2010-05-10 03:57:45

+0

是的,API級別爲3,即轉換爲1.5;請參閱文檔:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_REORDER_TO_FRONT – Samuh 2010-05-10 04:51:52

4

您可能希望將您的活動設置爲singleTop - 這基本上意味着您可以有多個實例,但如果您嘗試在其本身之上啓動實例,該應用程序將重新使用實例。請參閱Activities and Tasks上的Android文檔。