如何解决android.os.DeadObjectException android X问题

42

当 Android 解绑我创建的服务 (service.MyService) 时,我看到下面的 DeadObjectException 异常。

请问这意味着什么,我该如何修复这个异常?

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)
...

谢谢。

2个回答

36

这意味着你的服务已经停止了 - 要么被操作系统杀死,要么被应用程序停止。

您每次调试项目时,是否都会出现此问题?

覆盖您的服务的onDestroy()方法,并观察导致它的事件流。如果您捕获到DeadObjectException而没有通过此方法进行,请注意您的服务可能已被操作系统杀死。


1
Android Service有onStop()吗?我认为它只有onDestroy()。 - Shail Adi
@ShailAdi,你说得对,Android服务中没有opStop。 - dharmendra
那么解决方案就是在托管活动中终止服务,因为该活动将被销毁? - ono
它不起作用。请提供有效的建议。 - Anand Savjani

0
我之前也遇到过类似的日志问题,我只是简单地向上滚动了几百行日志,然后就找到了真正的错误原因!
我的意思是,DeadObjectException在大多数情况下只是一个后续错误,而不是根本原因,继续向上搜索日志吧;-)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接