簡體   English   中英

如何使Service和AsyncTask進行通信

[英]how to make a Service and AsyncTask communicate

我有這個問題:我有一個綁定到服務的主活動,而且,該主活動可以調用一個類(AsyncTask),該類是連接到服務器並等待數據的客戶端。

我試圖將類(AsyncTask)客戶端與服務進行綁定,但是我不知道這是否可行,還是我必須將數據返回給main活動,以便main活動可以將其發送到服務?

我可以在班上做

Intent intent = new Intent(getApplication(), ChatHeadService.class);
startService(intent);
bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);

但是如何在類(AsyncTask)客戶端中實現它?

您可以通過這種方式將數據從異步任務返回到主要活動。

protected void onProgressUpdate(Integer... progress) {
    setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
    showDialog("Downloaded " + result + " bytes");
}

然后,您可以通過調用startService(...)並將數據以intent傳遞,從而將數據從活動傳遞到服務。

多次調用startService(...)是安全的,並且不會啟動多個實例。

PS在Android上運行服務器聽起來不對。 Android設備只能用作客戶端。

我認為您可以像在活動中一樣從doInBackground()調用服務。 有關類似問題的解決方案,請參見此Stack Overflow帖子

暫無
暫無

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

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