0

我正在尝试执行以下操作并正在研究其他人的经历:

我希望有一个在 Android 上运行的 HTTP 服务器,它接收来自客户端的 GET 请求。从那里,服务器必须将查询参数传递给Service将进行一些处理(有时非常繁重)的 a。服务完成后,它将数据发送回服务器,然后服务器将返回响应。

当然, startService(intent) 调用是异步的,所以我想知道如何告诉服务器在发回响应之前等待处理完成。目前,进程间消息传递是通过MessengerMessage类完成的。

什么样的设计能够做到这一点?

4

1 回答 1

2

使用绑定服务(实现的服务onBind())和transact对返回IBinder对象的调用。或者编写自己的 AIDL 来描述服务的同步接口。

您希望在应用程序启动时绑定到您的服务,在 HTTP 请求开始之前,因为绑定操作本身是异步的。

顺便说一句,为什么功能必须在服务中?如果服务在同一个应用程序中,是否可以将其直接移动到 HTTP 服务器类?

于 2013-09-18T16:44:47.813 回答