2016-02-08 165 views
4

我有這樣的活動,啓動並綁定到服務:onUnbind不會被調用

@Override 
protected void onStart() { 
    super.onStart(); 

    Intent intent = new Intent(context, SoundService.class); 
    context.startService(intent); 
    context.bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE); 
} 

和我解除綁定方式:

@Override 
protected void onStop() { 
    context.unbindService(serviceConnection); 

    super.onStop(); 
} 

服務繼續運行即使在關閉活動之後。看着這樣的場景:

  1. 活動啓動該服務,並與之結合
  2. 活動就會被殺死,該服務繼續運行,onUnbind()
  3. 活動再次啓動,並綁定到正在運行的服務
  4. 活動就會被殺死,onUnbind()稱爲:(

爲什麼onUnbind()不ing叫?

+0

您可以驗證是否正在調用onStop()? – tynn

+0

爲什麼'startService'和'bindService'? –

+1

從'onUnbind'返回'true' – pskink

回答

2

回報true,下次如果你再打電話bindService不僅onRebind將被調用,但也當最後一個客戶端解除綁定時onUnbind將被系統調用

0

你是怎麼開始服務的?請粘貼該代碼。你叫unbindService()IF有連接到這個服務服務啓動與bind電話與AUTO_CREATE沒有其他客戶後

服務纔會停止。如果該服務已啓動與startService()然後該服務將不會停止,直到服務調用stopSelf()或Android從onUnbind終止以釋放內存