2010-08-12 45 views
2

我的應用程序有一個IntentService,它定期運行到 從遠程服務器下載數據。下載任務在 AsyncTask中運行,該引用僅適用於應用程序上下文。通知下載完成活動的方法

下載的數據適用於整個應用程序,並通過 顯示四個不同的活動。當下載完成時(AsyncTask 完成)服務被通知相同。現在,該服務需要 來通知適當的活動來更新其視圖。服務不是 意識到哪個應用程序在前臺運行哪個Activity。

如何建立連接?該服務如何將消息傳遞給 前臺的活動,以確定新數據是否可用,並且應該更新它的視圖 ?

請幫忙。

謝謝。

+0

你爲什麼使用AsyncTask? IntentService已經是異步設計,實際上通過使用AsyncTask,服務可能會在您執行時關閉。 – alexanderblom 2010-08-12 09:33:45

+0

是的。我打算改變這一點。 – Samuh 2010-08-12 10:50:46

回答

3

一種方法是發送broadcast,如果您有不同類型的活動,活動的活動將會收到它。

+0

我不認爲活動可以接收通過context.sendBroadcast()發送的Intents。如果服務廣播一個意圖,我將不得不寫一個廣播接收器來捕獲意圖。廣播接收機將如何識別哪個活動處於前景? 我無法啓動活動,因爲用戶將被帶到意想不到的新屏幕。如果我在這裏錯了,請糾正我。 – Samuh 2010-08-12 10:56:37

+0

如果您在活動中實施匿名廣播接收器,則活動可以接收廣播。 – Pentium10 2010-08-12 11:40:15

+0

第一次感到困惑,當我看到你的回覆。:) 謝謝! – Samuh 2010-08-12 12:49:04