2011-08-26 9 views
11

En mi aplicación, uso un servicio para comunicarme con nuestro servidor. El Servicio genera varios hilos de cola de mensajes para tratar tareas con diferentes prioridades.Servicio Android onCreate se llama varias veces sin llamar aDestroy

Este modelo se ha utilizado durante aproximadamente un año sin grandes problemas. Sin embargo, recientemente, encontré que el onCreate de mi clase de servicio se llama varias veces. onDestroy nunca se llama entre dos llamadas onCreate. Por lo tanto, no tuve la oportunidad de matar hebras existentes. Una vez que ocurre este comportamiento, el servicio tiene hilos duplicados dentro.

Lo único que he cambiado es ejecutar el servicio ya que el servicio en primer plano es un usuario que inicia sesión en la aplicación. Me pregunto si el servicio en primer plano causa el problema.

¿Alguna idea?

Respuesta

0

Tuve exactamente el mismo problema cuando estaba tratando con un servicio bluetooth (el problema ocurrió durante el desarrollo). Cuando desconecté mi dispositivo y maté el ADB, no volvió a suceder y se llamó a OnCreate solo una vez. Supongo que es un error porque sucede de vez en cuando. Pero tal vez tenga un problema ligeramente diferente ...

12

Tuve el mismo problema cuando mi servicio usaba el mismo proceso con actividades (predeterminado). pero no más problemas cuando hice mi servicio use otro proceso. He editado mis AndroidManifest.xml, como a continuación ... (añadí androide: proceso de atributo)

<service android:name="kr.co.pkbio.binoo.CacheFileManagerService" android:process=":kr.co.pkbio.binoo.service"/> 
<service android:name="kr.co.pkbio.binoo.ActivityStackManagerService" android:process=":kr.co.pkbio.binoo.service"/> 

ver http://developer.android.com/guide/topics/manifest/service-element.html para obtener información.

+0

¡Amigo! ¡usted es maravilloso! has resuelto mi problema – dd619

+0

No se puede trabajar en Android 4.2.2, ¿tienes alguna idea al respecto? – Wangchao0721

+1

No funciona para mí :( – MobileMon

0

Esto puede ser útil para alguien. Tuve el mismo problema al almacenar un mapa a través de un paquete en un método onSaveInstanceState en una de mis actividades. Creo que como el mapa contenía referencias a objetos que se usaban en otras partes de la aplicación (uno de ellos era mi servicio) cada vez que dejaba dicha actividad, mi servicio comenzaba nuevamente.

Supongo que esto es chanchullos del sistema operativo Android.

Cuestiones relacionadas