2010-01-15 10 views
8

Tengo múltiples actividades y un servicio. En MainActivity conecto con éxito para el servicio (usando una clase que implementa ServiceConnection + bindService() + startService()) pero cuando intento de aplicar mismo método en otra actividad que veo en LogCat un error:¿Cómo mantenerse conectado a un servicio de Android entre múltiples actividades?

01-15 22:29:37.438: ERROR/ActivityThread(12206): android.app.ServiceConnectionLeaked: 
    Activity com.app.liviu.simpleMusicPlayer.PlaylistActivity has leaked ServiceConnection 
    com.app.li[email protected]43713c90 
    that was originally bound here. 

¿Es posible conectarse a un servicio de otra manera: algo así como hacer que mi objeto CounterServiceConnection estético en MainActivity y lo use en el segundo?

Respuesta

15

El mensaje de error es bastante explica por sí mismo: se filtra la una ServiceConnection, por lo que significa Android que está llamando bindService() pero no están llamando al unbindService(), y se destruyó la actividad que llamó al bindService(). Asegúrese de llamar al unbindService() en onDestroy(), si no antes.

something like to make static my CounterServiceConnection object in MainActivity and use it in the seconde one?

+3

esto es decir cuál es el error, no la forma de resolver el problema – Will

+0

Tengo este mensaje de error llamando bindService, entonces bindService de nuevo en la misma actividad – Blundell

+0

Estoy llamando unbindService (esto) en Destroy. Para enlazar Estoy llamando 'bindResult booleano = bindService (nueva Intención (\t \t \t \t \t Consts.MARKET_BILLING_SERVICE_ACTION), esto, // ServiceConnection. \t \t \t \t \t Context.BIND_AUTO_CREATE)'. ¿Qué podría estar haciendo mal? – Siddharth

0

Puede obligar a éste a partir de un hilo separado, siempre y cuando se instala un looper en ese hilo

Cuestiones relacionadas