2013-05-09 75 views
0

我有一個問題想到活動管理。假設我有4個活動,例如A1,A2,A3,A4。現在A1有一個按鈕開始活動A2。 A2有兩個按鈕可以啓動A3或A4,A3有兩個啓動活動A4和A1的按鈕。 A4有3個按鈕來放置活動A1,A2,A3我不在這個活動中使用完成方法。那麼現在用戶點擊任何一個按鈕的活動都不是檢查活動,這是否已經在背後?如果是,則該活動不會生成新的實例並且已經在後臺中的開始活動。否則它會產生新的堅持。Android活動管理

+0

總之,我只是想知道這是活動已經在後臺,如果它是..而不是如何讓它帶到前面.. – 2013-05-09 07:50:32

回答

5

您可以通過在您的Intent的標誌中包括FLAG_ACTIVITY_REORDER_TO_FRONT,然後像平常一樣調用startActivity(intent)來獲得此行爲。

+0

在這種情況下不會使用'FLAG_ACTIVITY_REORDER_TO_FRONT'更有意義?用戶可以返回到現在啓動活動頂部的其他活動。 – ozbek 2013-05-09 08:07:32

+0

@shoerat你說得對,我很困惑。對我來說這是凌晨:-)。您的評論在我已經修復之後進入。 – Barend 2013-05-09 08:08:21

+0

@Barend謝謝你的回答..目前你的回答很好。我執行後,我會接受它。 +1 ... – 2013-05-09 08:09:22

0

您可以搜索Google的「android:lunchMode」。 然後你會得到anwser。

+0

謝謝!!是否有可能在brif中解釋它? – 2013-05-09 08:12:15

+0

如果您在AndroidManifest.xml中設置了android:lunchMode = singleTask,則活動堆棧中的活動將爲Singleton。當你啓動活動堆棧中的活動時,系統不會創建新的實例,它會將其放在堆棧的頂部。 – wlcw16 2013-05-09 08:58:20

0

無論何時在任何活動中單擊按鈕,它都會創建活動的新實例,而不管活動是否已在活動堆棧上。由於每次啓動新的Intent,它都會打開新的活動。 當我們按回按鈕時,只有它從堆棧中轉到已經打開的活動。

+0

謝謝!!我知道這一點,但。如果彼此之間存在如此多的活動,那麼它們可能已經在背後創建了。 – 2013-05-09 08:15:08

1

Intent intent = new Intent();

intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

startActivity(intent);