2011-04-01 72 views
0

情況下,這是我的問題的描述:清算活動在TabActivity

我有TabActivity由三個選項卡。每個選項卡都綁定適當的活動。當我在一個Activity中更改數據時,該事件應該影響另一個Activity的內容。要實現這樣的機會我使用以下標誌:

* Intent.FLAG_ACTIVITY_CLEAR_TOP *

此標誌允許我更新活動的內容。但問題是這會創建一個新的活動實例,並且不會釋放以前的內存。

在文檔中有一個說明「您可以使用Intent.FLAG_ACTIVITY_SINGLE_TOP返回創建的活動的實例」,但是當我將它與Intent.FLAG_ACTIVITY_CLEAR_TOP結合使用時,Activity的數據不會更新。

有誰知道什麼方法應該可以幫助我解決這個問題,並防止我從內存分配。

+0

您在哪種方法更新數據?如果它是'onCreate',則不會被調用,因爲您不會創建一個新的'Activity',而是將現有的一個放在前面。 'onNewIntent'將被調用。 – ernazm 2011-04-01 10:29:55

+0

我明白了。我更改非TabActivity onCreate方法中的數據,但是如果我已經設置了Intent.FLAG_ACTIVITY_CLEAR_TOP,它將帶有更新數據的Activity的新實例帶到頂部,並且不會刪除以前的實例。這是我的問題。如何刪除以前的活動實例? – teoREtik 2011-04-01 10:36:19

回答

2

請勿創建新的Activity,同時使用這兩個標誌並在onNewIntent中調用刷新。或者您可以將TabActivity的標籤從Activity s重寫爲普通View s

+0

我應該在什麼活動上調用NewIntent? – teoREtik 2011-04-01 11:25:23

+0

在你想刷新的一個。 – ernazm 2011-04-01 11:26:29

+0

所以,如果我改變一個簡單的Activity的代碼中的數據我怎麼能在第二個Activity中調用onNewIntent方法? – teoREtik 2011-04-01 11:37:23