我有在該命令的主要活動啓動的服務的Android應用程序:服務沒有正確關閉
bindService(new Intent(ctx, MyService.class), _connection, Context.BIND_AUTO_CREATE);
主要activty不excatly自認倒黴服務(這就是爲什麼我didn't提供代碼爲服務連接)。這個想法是,主要活動handels服務壽命!
據「停止」與用戶此代碼後的服務點擊我的應用程序的「關閉」按鈕:
if (_service != null) {
unbindService(_connection);
}
//Some cleanup here ...
System.exit(0);
我知道在這一點上,沒有任何其他活動綁定到服務事業的每一次活動從主要活動中調用,並從「onStop」的服務中解除綁定。
所以問題是我的服務不會在用戶關閉應用程序時調用「onDestroy」! 當我刪除「System.exit(0)」行時,它將正常關閉!
在這種情況下,如何確保服務正常關閉?
編輯:
好,我看這個討論:Is quitting an application frowned upon?。
現在我重建我的活動。我有一個使用startService調用服務的活動,然後綁定服務。當活動被銷燬時,它調用unbindService。
服務本身在onStartCommand中返回START_STICKY,使其更難以殺死它。它在所有工作完成後都會打電話給stopSelf。
現在我有問題,如果綁定仍然存在,我得到ServiceConnectionLeaked消息!那是什麼?我怎麼能阻止呢?使用
http://stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – Raghunandan