簡體   English   中英

Android服務和asynctask通信

[英]Android service and asynctask communication

我試圖找出按照Android最佳做法完成簡單應用的最佳方法時遇到問題。 這是場景:

1)我有一個用戶輸入內容的活動,然后發送到后台服務

2)后台服務對輸入執行一些檢查,並生成一個新的AsyncTask來處理輸入。

3) asynctask使用其進度和狀態更新服務中的Status Hashmap

4) 有一個第二個活動綁定到服務,以顯示服務中當前正在運行的任務列表及其進度。 這個想法是,即使關閉此活動,服務仍將繼續運行任務,並且當重新打開活動時,將顯示刷新的統計信息。

我在3和4中遇到問題。在AsyncTask的onProgressUpdate方法中與服務進行通信的最佳方式是什么,同時更新列表活動如果打開,如果沒有打開它更簡單,只需更新服務跟蹤映射當活動打開時,它會讀取並更新。

我不確定處理那種“事件”的標准方法是什么。 為了這個簡單的目的,你是否必須使用廣播監聽器和用戶或它太多?

如果要在服務和活動之間進行通信,可以在AsyncTask.onProgressUpdate方法中(或者在AsyncTask.onPostExecute(Result)方法中)從服務廣播更新,並使用活動中的廣播接收器監聽更新。

而不是我復制和粘貼很多代碼,請查看Vogella的服務教程,特別是練習(7.練習:使用服務和服務通信),在這里找到

www.vogella.com/tutorials/AndroidServices/article.html#tutorial_intentservice

在練習中,您正在尋找DownloadService.publishResults(...)方法,該方法從服務向廣播接收者正在偵聽更新發送廣播,並在MainActivity中使用BroadcastReceiver,后者處理來自服務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM