2009-10-15 44 views
29

Cuando Android desvincula un servicio que creé (service.MyService), veo el siguiente DeadObjectException.Cómo reparar android.os.DeadObjectException android X

¿Puede decirme por favor qué significa esto y puedo arreglar esta excepción?

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

Gracias.

Respuesta

29

Esto significa que su servicio ya se ha detenido, ya sea que se haya eliminado del sistema operativo o se haya detenido desde su aplicación.

¿Este problema ocurre cada vez que depura su proyecto?

Anule el método onDestroy() de su servicio y observe qué flujo de eventos lo conduce a él. Si captura DeadObjectException sin pasar por este método, su servicio debería haber sido cancelado por el sistema operativo.

+1

¿El servicio de Android tiene algún onStop()? Creo que está teniendo onDestroy() –

+0

@ShailAdi, tienes razón, no hay opStop para el servicio de Android – dhams

+0

La solución entonces es matar el servicio en la actividad de alojamiento cuando esa actividad se destruye. – ono

Cuestiones relacionadas