2016-06-22 38 views
0

我有一個處理多個客戶端連接的Android綁定服務。如果我理解正確,Android會在沒有客戶端連接的情況下終止服務。推遲銷燬Android綁定服務

但是,在這一點上,我的服務可能仍然有另一個線程在客戶端斷開連接後運行最多1分鐘。我擔心的是,如果我在我的服務被銷燬之前加入此線程,則銷燬會延遲,並且會阻止創建新服務,從而丟棄新的客戶端連接。這是真的?有沒有辦法推遲銷燬綁定服務? (如添加一個假的約束計數服務時的工作線程啓動,當線程結束減去)

基本上,我想覆蓋的情況是:

  1. 服務有一個長期運行任務在一個單獨的線程中。
  2. 客戶端連接數達到零。
  3. 該服務尚未終止,因爲子線程仍在運行。

    3-1。子線程完成,然後服務被終止。

    3-2。當子線程正在運行時,新客戶端會綁定。所以服務保持運行。

+0

IntentService是一種可能的替代方案嗎? [IntentService](https://developer.android.com/reference/android/app/IntentService.html) – usajnf

回答

1

這就是Service的工作原理,它以startService()開頭。 通常,在每次綁定到服務之前,都會使用該呼叫啓動該服務。

stopSelf()Context.stopService()將立即停止服務,或者一旦所有邊界都沒有邊界。