我在我的应用程序中有多个活动,每个活动都调用bindservice
和unbindservice
来获取数据。在第一个活动bindservice
和unbindservice
工作正常。在第二项活动(其中重复使用相同的服务)绑定服务的方法工作正常,但unbindservice
方法给出例外:IllegalArgumentException:服务未注册:
IllegalArgumentException: Service not registered:
请帮助。
我在我的应用程序中有多个活动,每个活动都调用bindservice
和unbindservice
来获取数据。在第一个活动bindservice
和unbindservice
工作正常。在第二项活动(其中重复使用相同的服务)绑定服务的方法工作正常,但unbindservice
方法给出例外:IllegalArgumentException:服务未注册:
IllegalArgumentException: Service not registered:
请帮助。
多个客户端可以一次连接到该服务。但是,只有当第一个客户端绑定时,系统才会调用您的服务的onBind()方法来检索IBinder。系统然后将相同的IBinder传递给绑定的任何其他客户端,而无需再次调用onBind()。 http://developer.android.com/guide/components/bound-services.html 多个组件可以立即绑定到该服务,但是当它们全部解除绑定时,服务将被销毁。 因此,请检查您是否在第一时间终止服务。 可能会将IBind传递给每个活动要好得多。因为它只返回一个。
请确保您在活动中仅为每个服务取消绑定。偶然发生了2次解绑,并在第二次崩溃时发生了这个错误。删除重复的解除绑定解决了我的问题。 – eliteslayer 2013-07-18 02:56:10
我有一个旧的API的这个问题。 (安卓2.2) 我得到这个错误,当我调用此方法:(从计费教程)
@Override
public void onDestroy() {
super.onDestroy();
try {
if (mHelper != null) mHelper.dispose();
mHelper = null;
}catch (IllegalArgumentException e){
Log.d("TMA Billing Android 2.2","Error: "+e.getMessage());
mHelper = null;
}
}
正如你所看到的,我尝试捕捉包围它,现在它正在与没有问题在Android 2.2 。
您使用什么上下文绑定到服务? – NikkyD 2012-11-21 10:04:09
请发布logcat。 – 2013-07-07 15:45:57
更好的讨论:https://stackoverflow.com/questions/12277673/android-services-error-service-not-registered – dskrvk 2017-01-25 21:37:24