2009-10-15 76 views
29

當android解除綁定我創建的服務(service.MyService)時,我看到下面的DeadObjectException的 。如何解決android.os.DeadObjectException android x

你能告訴我這是什麼意思,我能解決這個例外嗎?

W/ActivityManager( 583): Exception when unbinding service 
com.mycompany/.service.MyService 
W/ActivityManager( 583): android.os.DeadObjectException 
W/ActivityManager( 583):  at 
android.os.BinderProxy.transact(Native Method) 
W/ActivityManager( 583):  at 
android.app.ApplicationThreadProxy.scheduleUnbindService(ApplicationThreadNative.java:516) 
W/ActivityManager( 583):  at 
com.android.server.am.ActivityManagerService.removeConnectionLocked(ActivityManagerService.java:9609) 
W/ActivityManager( 583):  at 
com.android.server.am.ActivityManagerService.killServicesLocked(ActivityManagerService.java:8515) 
... 

謝謝。

回答

29

這意味着您的服務已經停止 - 無論是從操作系統中死亡還是從您的應用程序中停止。

每次調試項目時都會出現這個問題嗎?

重寫您的服務的onDestroy()方法,並觀察事件流向。如果你沒有通過這種方法趕上DeadObjectException,你的服務應該已經被操作系統殺死了。

+1

Android服務有沒有onStop()?我認爲它是有onDestroy() – 2013-05-09 05:13:01

+0

@ ShailAdi你是對的,沒有opStop的android服務 – dhams 2013-08-07 10:27:17

+0

那麼解決方案是殺死託管活動中的服務,因爲該活動被破壞? – ono 2014-11-03 22:10:26