2014-03-05 38 views
0

當開始與Intent.FLAG_ACTIVITY_CLEAR_TOP標誌的活性(AlbumViewActivity)以顯示一個新的相冊,我看到呈現先前專輯在新的彈出之前在重用之前清除活動渲染?

活動層級:

AlbumViewActivity-> MenuActivity-> AlbumPickerActivity-> AlbumViewActivity

如何在選取新專輯時「清除」以前的AlbumViewActivity渲染?

回答

0

爲了在現有活動中重新使用新的意圖,必須將其聲明爲「SingleTask」或「SingleInstance」android:launchmode。

0

FLAG_ACTIVITY_CLEAR_TOP文檔說:

如果設置,以及正在啓動的活動中 當前任務已在運行,然後,而不是發動那 活動的新實例,所有其他活動的在它之上將被關閉,並且 這個意圖將被遞送到(現在在最上面)舊的活動,作爲 新的意圖。

所以基本上,擺脫這個標誌!

+0

清除inbetween活動是我需要的,循環活動會很好,但它似乎也創建了一個新的活動對象(似乎是一個不同的地址)。 – Tryum

+0

如果你想回收你的活動,你需要手動清除! – Merlevede

+0

我剛剛閱讀了關於「標準」啓動模式的註釋,重新創建了一個活動實例......我將嘗試使用「singleInstance」啓動模式。 儘管如此,我還是覺得很難看到正在被破壞的舊活動。 – Tryum

0

簡單使用FLAG_ACTIVITY_CLEAR_TOP標誌 在再次調用活動之前,將解決您的問題。

+0

我在我的問題中說我正在使用這個標誌... 問題是活動的啓動模式,如說明中所述: '注意:如果指定活動的啓動模式是「標準」它也被從堆棧中移除,並且在它的位置啓動一個新實例來處理傳入的意圖。這是因爲當啓動模式爲「標準」時,總是爲新的意圖創建新實例 – Tryum