我有一個活動A,活動B和一個對象C.我需要從活動A開始活動B,同時開始時我需要對象C來查找用戶位置,一旦它必須通過位置對象通知可用的活動B.當數據/模型發生變化時通知視圖/活動
我不確定Object C如何通知活動B,因爲android dosent允許獲取活動引用。
我有一個活動A,活動B和一個對象C.我需要從活動A開始活動B,同時開始時我需要對象C來查找用戶位置,一旦它必須通過位置對象通知可用的活動B.當數據/模型發生變化時通知視圖/活動
我不確定Object C如何通知活動B,因爲android dosent允許獲取活動引用。
創建一個將在後臺查找用戶位置的AsyncTask。
完成後,您可以更新用戶界面或者爲用戶創建通知。
研究實施Bound Service。您的位置信息可以在此服務中獲取(當然,在另一個線程上),並在綁定到服務時在活動B中檢索。
使用Java Observer和Observable classes。
通過在您的數據對象(模型)上擴展Observable類,您可以分配觀察者來監聽所述數據模型中的更改。當數據改變時,Observer會自動通知並觸發update()
方法。
的update()
方法是把你的代碼刷新由在數據中的變化的影響的觀點,這是其中的觀點和數據模型之間的連接發生時(通常在Android活動)一個明顯的地方。使用Observer和Observable類的優點在於數據模型,視圖和控制器(更新視圖的Activity)都是分開的。也就是說,您可以根據需要使用數據模型,如果您更改視圖,則不會中斷數據模型,反之亦然。這使得您的應用程序更易於理解,並且更容易在以後進行更新。
這裏是簡單的代碼示例:http://www.ootpapps.com/eclipse_projects/ObserverExample.zip