2015-11-07 65 views
1

我把这个“Activity 1”绑定到Service上。我开始使用我可以在android中停止由bindService而不是StartService启动的服务吗?

Intent wrapperServiceIntent = new Intent(mContext,BleWrapper.class); 
bindService(wrapperServiceIntent,mBLEWrapperServiceConnection,BIND_AUTO_CREATE); 

我可以停止此服务使用

stopService(new Intent(mContext,BleWrapper.class)); 

insted的的

mContext.unbindService(mServiceConnection); 

是出现上述情况可能与服务?

回答

1

从技术文档:

当服务是所有客户端绑定,Android系统破坏它(除非它也与onStartCommand开始())。因此,如果服务是纯粹的绑定服务,则不必管理服务的生命周期 - Android系统会根据它是否绑定到任何客户端来管理它。但是,如果您选择实施onStartCommand()回调方法,则必须明确停止服务,因为服务现在被认为是启动的。在这种情况下,服务运行直到服务使用stopSelf()或另一个组件调用stopService(),停止自身,而不管它是否绑定到任何客户端

1

不,您不能这样做,您需要先删除绑定。

Android的文件说:

注意,如果停止服务仍具有绑定到它与BIND_AUTO_CREATE集ServiceConnection对象,也不会被破坏,直到所有这些绑定被删除。

另一件事,在stopService你需要传递mServiceConnection而不是创建一个新的意图。