2015-11-01 52 views
0

所以我有一個活動,它持有一些數據MyData。我有一個後臺IntentService,它定期運行並更新數據庫中的數據,當後臺活動進入前臺時,我喜歡重新加載數據。但是我只想在後臺服務運行時重新加載。我使用廣播接收器,但只有在活動處於前臺時才能工作。如果Activity處於後臺,它不會收到任何事件。如何與意圖服務的後臺活動溝通

我在想的另一種方法是在我的IntentService運行時,然後在後臺運行恢復時,在首選項中寫入「reload」標誌,然後檢查該標誌並在必要時重新加載,並將其重新設置爲false。

任何人都可以提出更好的解決方案嗎?謝謝。

回答

0

簡單的方法?使用靜態方法,如MyIntentService.didAnythingChange()(確保在活動重新加載時清除該標誌)。或者可能是一個序列號,所以你的活動中會有類似if (this.updateNo != MyIntentService.getLatestUpdateNo())的內容。

複雜的方式?在您的活動中使用動態註冊的BroadcastReceiver,並從您的IntentService發送匹配的廣播。讓BroadcastReceiver在活動中設置一個標誌。