从所有代码示例中可以看出,如果我们调用了#bindService,我们只想调用#unbindService(在相同的上下文中),这是通过布尔检查完成的。
但是在#bindService 调用中没有类似的检查——即我们不检查我们是否已经首先绑定以避免“双重绑定”。
所以我的问题——
- 如果我多次绑定服务但仅取消绑定一次,或者仅绑定一次并取消绑定多次,那么“会发生坏事”吗?这种不对称对我来说似乎很奇怪,但想看看是否有人知道答案。我现在正在玩它自己试图弄清楚它,但更喜欢更有经验的开发人员的“官方”答案。
- 什么被认为是“绑定”和“未绑定”操作 - 是不是我只是调用了#bind(或#unbind)API,并且这些调用必须成对,或者是由必须配对的#onServiceConnected/Disconnected 回调?谷歌自己的例子似乎表明前者是真的,有人可以证实吗?如果前者为真,那么最后一个更微妙的问题是:如果#bindService 返回假,即android 甚至不会尝试连接,因为它无法解析服务,在这种情况下调用#unbindService 是否安全?
谢谢你。