2012-01-02 137 views
1

我有一個活動A,活動B和一個對象C.我需要從活動A開始活動B,同時開始時我需要對象C來查找用戶位置,一旦它必須通過位置對象通知可用的活動B.當數據/模型發生變化時通知視圖/活動

我不確定Object C如何通知活動B,因爲android dosent允許獲取活動引用。

回答

0

創建一個將在後臺查找用戶位置的AsyncTask。

完成後,您可以更新用戶界面或者爲用戶創建通知。

1

研究實施Bound Service。您的位置信息可以在此服務中獲取(當然,在另一個線程上),並在綁定到服務時在活動B中檢索。

0

使用Java Observer和Observable classes。
通過在您的數據對象(模型)上擴展Observable類,您可以分配觀察者來監聽所述數據模型中的更改。當數據改變時,Observer會自動通知並觸發update()方法。

update()方法是把你的代碼刷新由在數據中的變化的影響的觀點,這是其中的觀點和數據模型之間的連接發生時(通常在Android活動)一個明顯的地方。使用Observer和Observable類的優點在於數據模型,視圖和控制器(更新視圖的Activity)都是分開的。也就是說,您可以根據需要使用數據模型,如果您更改視圖,則不會中斷數據模型,反之亦然。這使得您的應用程序更易於理解,並且更容易在以後進行更新。

這裏是簡單的代碼示例:http://www.ootpapps.com/eclipse_projects/ObserverExample.zip

相關問題