2015-02-12 80 views
1

我搜索了很多線程並實現了很多解決方案,但我想我還想要其他東西。 假設我有A-> B-> C-> D活動。從活動D我不會去同一個A的實例,也清除D,C,B活動。我想恢復活動A而不是重新創建它!我怎樣才能做到這一點?但請記住,我還想清除所有其他活動,所以我在堆棧中應該只有活動A.如何在不清除根活動的情況下清除堆棧活動,並將根活動放在前面?

謝謝! :)

+0

檢查這個線程的回答: http://stackoverflow.com/questions/16211678/start-activity-clearing-top-in-android – kjurkovic 2015-02-12 09:15:07

+0

@kjurkovic:誰問的一個這個問題想要一個新的實例,我想要相同的實例 – 2015-02-12 09:17:21

+0

如果你甚至不屑於閱讀他的問題,你會注意到他給了你一個答案:「順便說一句,我使用了intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) , ; 當啓動B活動,但這種方式的onNewIntent被調用,而不是啓動一個新的實例「 – kjurkovic 2015-02-12 10:55:06

回答

0

只是做後退按鈕,嘗試打電話給你的意圖與「帶到了FRONT」

Intent intent = new Intent(this,A.class); 
intent .setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); 
startActivity(intent); 
+0

好吧,我如何清除其餘的活動? (B和C) – 2015-02-12 09:22:53

+0

好吧,您也想清除活動C和B,但希望保存的舊活動A比您需要處理的方式可以使用Intent.FLAG_ACTIVITY_CLEAR_TOP直到活動B並且基於B級的一些savedPreference值巧妙地調用finish()! – 2015-02-12 09:29:05

+0

嗯,這應該做到這一點。我會試試看,並要求你發表一個答案,以便我可以標記它! Thx – 2015-02-12 09:31:43

0

假設活動「A」是你的應用程序的任務的根本標誌 - 使用標誌CLEAR_TASK以及NEW_TASK將描繪與您的行爲相同的行爲。所有你需要做的就是在活動「A」的意圖中添加這些標誌。

標誌CLEAR_TASK將刪除所有活動在上面的「A」和NEW_TASK將創建一個「A」(相同的活動實例)作爲其根的新課題。

希望這有助於