2015-11-07 78 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而不是創建一個新的意圖。

相關問題