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

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.