我的應用程序有一些問題, 我有4個按鈕,一個用於開始其他每個活動。 說活動被稱爲a,b,c,d。我希望能夠在這些活動之間進行切換,而無需在堆棧中獲取100d個已暫停的活動,但仍可保存後臺歷史記錄。同一活動的多個實例?
即A-> B-> A-> C-> D-> a其中全部是活動的同一實例
所以實際上我想要的是能夠重新啓動非常相同的實例的活動,而不是開始一個新的。
可能嗎?
我的應用程序有一些問題, 我有4個按鈕,一個用於開始其他每個活動。 說活動被稱爲a,b,c,d。我希望能夠在這些活動之間進行切換,而無需在堆棧中獲取100d個已暫停的活動,但仍可保存後臺歷史記錄。同一活動的多個實例?
即A-> B-> A-> C-> D-> a其中全部是活動的同一實例
所以實際上我想要的是能夠重新啓動非常相同的實例的活動,而不是開始一個新的。
可能嗎?
是的,這是可能的。
mIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
將此標誌添加到您的意圖中,這會將您的活動放在堆棧的頂部而不是創建新的標誌。
如果你的活動「a」是你的家,你可以添加這些標誌:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
然後,當你壓回,應用程序將退出(因爲你清除了所有其他活動)=>doc
不幸的是後面的歷史消失了,否則它有效,但不適合這個解決方案 – We4sZ 2012-07-11 07:13:04
是的,這是正確的答案。 Not(Intent.FLAG_ACTIVITY_CLEAR_TOP)或(Intent.FLAG_ACTIVITY_SINGLE_TASK); – 2012-10-29 14:14:33