我有这个问题: 我有一个绑定到服务的主要活动, 此外,该主要活动可以调用一个类(AsyncTask),该类是连接到服务器并等待数据的客户端。
我试图将类(AsyncTask)客户端绑定到服务, 但我不知道这是否可能 或者我是否必须将数据返回主活动,以便主要活动可以将其发送到服务?
我可以在主类
中完成此操作Intent intent = new Intent(getApplication(), ChatHeadService.class);
startService(intent);
bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE);
但是如何在类(AsyncTask)客户端中实现它?
答案 0 :(得分:0)
您可以通过这种方式将异步任务中的数据返回到主要活动。
protected void onProgressUpdate(Integer... progress) {
setProgressPercent(progress[0]);
}
protected void onPostExecute(Long result) {
showDialog("Downloaded " + result + " bytes");
}
然后,您可以通过调用startService(...)
并在intent
中传递数据,将该数据从活动传递到服务。
多次调用startService(...)
是安全的,不会启动多个实例。
<强> P.S。强> 在Android中运行服务器并不适合我。 Android设备只能用作客户端。
答案 1 :(得分:0)
我认为您可以像在活动中一样从doInBackground()
调用服务。有关类似问题的解决方案,请参阅this Stack Overflow post。