7

客户端可以使用bindService()/调用原始的绑定/取消绑定服务unbindService()

我的问题是如何在服务端取消绑定服务,而不是unbindService()由客户端调用,可能我应该调用它unbindClient

我认为服务应该知道绑定了哪些客户端,那么有没有办法告诉服务取消绑定特定客户端?

因为我只写服务,我不知道客户端调用unbindService()是否正确,所以我有这个问题..

4

3 回答 3

0

服务不能自行解除绑定。不过,您可以使已启动的服务自行停止stopSelf()

操作系统在幕后跟踪所有绑定和解除绑定。您不必担心对象回收,Android 会为您完成。

于 2013-03-21T07:29:46.780 回答
0

如果您只想限制服务启动并调用 bindService() 后返回的功能。您可以注册客户端并在完成服务后取消注册。这样绑定您的服务不会有任何影响。这我从android 网站中的Remote Messenger Service示例中选择

于 2014-08-07T04:53:42.370 回答
0

如果您有权访问客户端代码 -

您可以startService()从客户端调用 - 这将启动服务(而不是Service在退出时结束Activity- 因为只会stopService()关闭它)。

而且,客户可以调用bindService()- 如果他们想要执行Activity-Service交互。

在退出/取消绑定客户端时,该服务将在startService()被调用后仍然运行 -Service可以执行其他操作,然后调用stopService()将自行销毁。

于 2013-03-19T23:04:56.033 回答