![](/img/trans.png)
[英]AsyncTask: how to communicate with another class with onProgressUpdate
[英]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.