2014-04-14 58 views
0

我是Android的noob。假設我在我的Android應用程序中有兩個Activity更新查看更新的Android數據中的數據

Activity A和B,目前我在活動A然後點擊一個按鈕我現在活動B。這裏從活動B我想更新一些視圖與活動A中的更新數據。我在活動B中獲得更新的數據,所以我應該在這裏使用LocalBroadCastReceiver這個或任何東西?所以當我按回當時的應用程序應該告訴我更新的數據在活動A

我們是否應該使用我們的自定義回調來更新Activity B的UI視圖數據?

+0

您正在使用哪種類型的視圖?你想要顯示什麼類型的數據,以及正在更新什麼類型的數據 – r4jiv007

+0

像任何「TextView」和我在活動B – Mick

+0

中獲得的任何文本數據一樣,你是在哪裏存儲數據? – r4jiv007

回答

2

不,您不應該使用BroadcastReceiver。該方法取決於您要從Activity B轉換爲Activity A的數據大小。如果它很小,則可以使用startActivityForResult開始Activity B,然後將數據返回到onActivityResult方法(在Activity B中,一旦完成,您應該使用setResult)。如果數據的大小很大,最好使用DB來存儲它,而不是將它保存在內存中。

+0

怎麼樣如果我有四個活動A-> B-> C-> D那麼我在D中獲取更新的數據,然後想要在A的TextView中設置該數據,那麼我應該使用'onActivityResult'? – Mick

+0

@Mick在這種情況下,您絕對應該使用'DB'。你可以創建一個'startActivityForResult'級聯,但我認爲這很奇怪。 – nikis

+0

假設我在D的web api中只有一個單詞,那麼對於這個我應該使用DB,這怎麼可能是好的方法我不這麼認爲在這裏使用DB – Mick

1

還好,有多種方式可以做到這一點: -

  1. 你可以使用一個靜態變量來您存儲過的應用程序級(可能不是一個好方法)檢查​​vairable值數據onResume()並將其設置爲視圖。
  2. 您可以使用sharedpreferences如果你的數據是沒有那麼大,將數據存儲在活動B,並獲取它的onResume()A.活動的方法
  3. 作爲@nikis告訴你
  4. 如果你的數據是太大型存儲在分貝。

我不認爲broadcastreceiver適合您的情況!