我正在尝试做以下事情并且正在调查其他人的经历:
我希望在Android上运行一个HTTP服务器,它接收来自客户端的GET请求 . 从那里,服务器必须将查询参数传递给 Service
,它将进行一些处理(有时非常繁重) . 服务完成后,它会将数据发送回服务器,然后服务器将返回响应 .
当然,startService(intent)调用是异步的,所以我想知道如何告诉服务器在发回响应之前等待处理完成 . 目前,进程间消息传递是使用 Messenger
和 Message
类完成的 .
什么样的设计能够实现这一目标?
1 回答
在返回的
IBinder
对象上使用绑定服务(实现onBind()
的服务)和transact
调用 . 或者编写自己的AIDL来描述服务的同步接口 .您希望在HTTP请求开始之前在应用启动时绑定到您的服务,因为绑定操作本身是异步的 .
顺便说一句,为什么功能必须在服务中?如果服务在同一个应用程序中,您可以将其直接移动到HTTP服务器类吗?