我将此“活动1”绑定到服务。我使用
启动了服务Intent wrapperServiceIntent = new Intent(mContext,BleWrapper.class);
bindService(wrapperServiceIntent,mBLEWrapperServiceConnection,BIND_AUTO_CREATE);
我可以使用
停止此服务吗?stopService(new Intent(mContext,BleWrapper.class));
insted of
mContext.unbindService(mServiceConnection);
上述情况可能吗?
答案 0 :(得分:1)
来自文档:
当服务从所有客户端解除绑定时,Android系统会将其销毁(除非它也是以onStartCommand()启动的)。因此,如果服务纯粹是绑定服务,则不必管理服务的生命周期 - Android系统会根据是否绑定到任何客户端来为您管理服务。
但是,如果您选择实现onStartCommand()回调方法,则必须显式停止该服务,因为现在认为该服务已启动。在这种情况下,服务会一直运行,直到服务停止使用stopSelf()或其他组件调用stopService(),,无论它是否绑定到任何客户端。
答案 1 :(得分:1)
不,你不能这样做,你需要先删除绑定。
Android文档说:
请注意,如果停止的服务仍然具有绑定到它的ServiceConnection对象并且设置了BIND_AUTO_CREATE,则在删除所有这些绑定之前不会销毁它。
另一件事,在stopService
中,您需要传递mServiceConnection
而不是创建新意图。