【发布时间】:2011-12-23 09:34:24
【问题描述】:
我有一个绑定到应用程序上下文的服务,如下所示:
getApplicationContext().bindService(
new Intent(this, ServiceUI.class),
serviceConnection,
Context.BIND_AUTO_CREATE
);
protected void onDestroy() {
super.onDestroy();
getApplicationContext().unbindService(serviceConnection);
}
由于某种原因,只有有时应用程序上下文没有正确绑定(我无法修复该部分),但是在 onDestroy() 中我执行unbindservice 会引发错误
java.lang.IllegalArgumentException: Service not registered: tools.cdevice.Devices$mainServiceConnection.
我的问题是:有没有办法安全地调用unbindservice 或者在解除绑定之前检查它是否已经绑定到服务?
提前致谢。
【问题讨论】:
-
我之前确实经历过这个,但这并没有解决我的问题,假设我调用UnBindService而不调用BindService(),你如何在没有应用程序FC的情况下处理错误?
-
你不能抓住异常继续前进吗?
-
@Yury 的答案是正确的答案。
-
这是因为您将服务与 getApplicationContext() 绑定,然后将其与当前活动上下文解除绑定。这就像给 X 一个硬币然后从 Y 那里要它。它会抛出 IllegarlArgumentException :-) 我希望这是问题的答案,在绑定和解除绑定时使用相同的上下文 :-)
标签: android