以下是協議:我有一個Android應用程序需要每X秒(當前爲60秒)調用Web服務。此應用程序有多個選項卡,這些選項卡都需要與數據本身進行交互。一個是MapView,一個是ListView,然後第三個不相關,但最終還需要獲取一些全局數據。問題是我希望我的主要活動有一個在後臺運行的線程,獲取結果,然後指示TabHost中的兩個子活動使用最新數據更新自己。另外,當用戶點擊選項卡並且onCreate/onResume活動觸發時,我還想通過從主活動獲取最新數據來強制重繪。我真的很茫然。我已經嘗試過使用服務和一些貧民窟靜態方法來將活動的實例傳遞給服務,以便每當定時器啓動時調用特定的函數來更新其視圖,但減速非常糟糕,代碼只是醜陋醜陋難看。有什麼建議麼?在Android TabHost應用程序中完成活動間通信的最佳方式
編輯:所以我在tabhost活動中將它實現爲一個定時器驅動的線程,然後在每個子活動中都有計時器驅動的線程,然後獲取數據(以同步的方式)並更新它們的映射/列表。它的速度更快,但還是感覺稍微砍十歲上下,特別是部分在那裏我打電話,像這樣在父活動的自定義函數:
((MainActivity)getParent()).getNearbyMatches();
這增加了我不是完全激動強耦合的元素但是從性能的角度來看,它要好得多。我很欣賞已經給出的答案,並會對內容提供商方面進行一些研究,但我不確定我是否想回到服務模型。
我希望我也知道如何做到這一點!+1 – cakeforcerberus 2009-07-22 15:05:54