我是否需要完美地配对bindService / unbindService调用?

时间:2015-01-20 18:57:12

标签: java android android-service android-service-binding

从所有代码示例中我们只想调用#unbindService(在相同的上下文中),如果我们调用了#bindService,这是通过布尔检查完成的。

但是#bindService调用中没有类似的检查 - 即我们不检查我们是否已经先绑定以避免"双重绑定"。

所以我的问题 -

  1. "会发生不好的事情"如果我多次绑定一个服务但只绑定一次,或者如果我绑定一次并解除多次绑定它只会是坏的?这种不对称对我来说似乎很奇怪,但想知道是否有人知道答案。我正在玩它现在我自己试图解决它但更喜欢一个"官方"来自更有经验的开发人员的回答。
  2. 什么被认为是" bind"和#34; unbound"操作 - 我只是调用了#bind(或#unbind)API,那些调用必须配对,或者是#onServiceConnected / Disconnected指示的绑定/未绑定状态必须配对的回调?谷歌自己的例子似乎表明前者是真的,任何人都可以证实吗?如果前者是真的,那么最后一个更微妙的问题是:如果#bindService返回false,即android甚至尝试连接,因为它无法解析服务,在这种情况下调用#unbindService是安全的?
  3. 谢谢。

1 个答案:

答案 0 :(得分:-1)

我怀疑Android允许多次绑定到同一服务,但这没有任何意义。

绑定到服务并获取Messenger对象。下次检查时,如果messenger为null。如果不是,则不需要再次绑定。一旦您的活动结束且信使不为空,您就解除绑定。

详情为here