¿Cómo mantener un servicio con los oyentes vivo después de desatar en Android?

Actualmente estoy creando una aplicación de chat utilizando XMPP. He creado un servicio para manejar la conexión y los mensajes entrantes, agregando los diferentes oyentes necesarios.

El problema es, sin embargo, cuando la actividad llama desvincular el servicio (por ejemplo, cuando la actividad se detiene o se detiene cuando el usuario pone la aplicación en segundo plano), el servicio se destruye, aunque tiene oyentes dentro de él (como un chat Oyente, oyente de mensajes, etc.)

¿Cómo puedo mantener vivo mi servicio para poder recibir mensajes cuando la aplicación está en segundo plano? He leído que el uso de un servicio de primer plano es muy mal visto, así que prefiero evitar que si es posible.

Realmente tuve esto al desarrollar mi aplicación recientemente.

El truco es iniciar el Service por su propia cuenta y luego vincularlo con el Intent . Cuando se desvincula de él, el Service seguirá funcionando.

 Intent i = new Intent(this, DataService.class); startService(i); bindService(i, this, Context.BIND_AUTO_CREATE); 
  • ¿Por qué NullPointerException ocurre con el uso de BillingService estándar?
  • Animar ImageView dentro de WindowManager en un servicio de Android
  • Adquisición de instancia del servicio de fondo
  • Android: Unidad de prueba de un servicio
  • Android detecta el estado táctil desde cualquier aplicación
  • Ejemplo de servicio bind / unbind (android)
  • Inicio del servicio de fondo cuando se enciende Android
  • Si un servicio vinculado o hilos personalizados cuando descarga algo?
  • Diferencia entre los receptores de servicio y difusión en android
  • Android Polling regular de GPS en servicio, maximizando la duración de la batería
  • Iniciar servicio desde la notificación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.