我有一个活动和一个本地绑定服务。我已经启动并运行绑定服务,因此我可以通过服务器/绑定器界面上的功能处理从客户端到服务器的通信。
但是我需要双向通信,服务在某些时候需要通知活动(和用户)发生的事情,并且需要在继续之前等待用户操作。换句话说,我需要对客户端的服务器调用进行同步或阻塞。即当服务调用一个函数时,它会将一些参数传递给客户端,这将触发一个AlertDialog供用户使用,他们的选项将决定发送回服务的返回状态代码。在此之前,我希望服务暂停并等待它收到响应,然后将确定它的作用(服务继续运行,服务关闭等)。
Android中有没有办法做到这一点?我需要获得对我的活动的引用,它还需要公开这些阻塞方法,以便我可以从服务中调用它们然后等待响应。我已经为我的客户活动提供了一个界面,但我正在努力解决如何将此问题转移到服务上。我不想使用序列化并将引用添加为Intent extra,因为客户端和服务都有许多成员,我不希望它们是Serializable。
感谢。
答案 0 :(得分:1)
startService()
的每次调用只会调用服务类的onStartCommand()方法,因此你可以在Intent中向它发送消息。