我有一個服務開始和綁定類型(如定義here)。它開始無限期地運行,然後一個單獨的應用程序綁定到它:當這個應用程序被銷燬時,它調用unbindService
的onDestroy
方法。服務如何檢測到活動已關閉?
服務應檢測到此應用程序已完成。我閱讀了onUnbind方法,當所有客戶端從服務發佈的特定接口斷開連接時調用。但是,我不需要知道所有客戶端何時斷開連接,但是任何斷開連接。可能嗎?
我認爲,關閉(在onDestroy
方法內)期間,應用程序可以將消息發送給服務(服用該服務所綁定的事實優勢):後應該調用unbindService
方法,如下所示。
// method of the application
@Override
public void onDestroy() {
super.onDestroy();
service.closed(); // service is defined by IService.aidl
unbindService(...);
}
這樣的應用程序將發送的最後一條消息給服務(service.closed()
方法),然後取消綁定服務。它能正常工作嗎?郵件到達目的地時,service.closed()
方法是否會返回?或者由於下一次調用unbindService
方法,可能會有郵件未送達的風險?
太棒了!它工作正常! – enzom83