如何使服务和AsyncTask通信



>我有这个问题: 我有一个绑定到服务的主要活动, 此外,该主活动可以调用一个类 (AsyncTask(,该类是连接到服务器并等待数据的客户端。

我尝试将类(AsyncTask(客户端绑定到服务, 但我不知道这是否可能 还是必须将数据返回到主活动,以便主活动可以将其发送到服务?

我可以在主类中做到这一点

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(...)是安全的,不会启动多个实例。

附言在Android中运行服务器对我来说听起来不对。Android 设备只能用作客户端。

我认为您可以像在活动中一样从doInBackground()调用服务。请参阅此堆栈溢出帖子以获取类似问题的解决方案。

最新更新