Android: ¿Cómo ejecutar el servicio cuando la aplicación es visible?

Quiero que un servicio se ejecute en segundo plano siempre que una de varias de las actividades de mi aplicación sea visible.

Actualmente estoy enlazando a ella en una subclase de Application , así:

 public class App extends Application { @Override public void onCreate() { super.onCreate(); bindService(new Intent(this, MyService.class), mServiceConnection, BIND_AUTO_CREATE); } } 

Sin embargo, no existe onDestroy método onDestroy correspondiente para desvincular el servicio. Cuando se cierra la última actividad, el servicio continúa ejecutándose indefinidamente.

  1. ¿Está bien esto? ¿Debo apenas permitir que el OS cierre el servicio abajo cuando está bajo en memoria?
  2. Alternativamente, hay una manera de hacer esto en una base por actividad?

Podría ser muy fácil de hacer. Vincule el servicio a las actividades de primer plano. Mientras las actividades estén activas Android mantendrá el servicio en marcha.

Cuando todas las actividades están desatadas el servicio morirá automáticamente. (servicios llamados por onbind morirán automáticamente cuando todas las actividades de enlace se han ido). Sólo cuando se utiliza onCreate para crear un servicio debe preocuparse por ondestroy.

  • Obtener eventos táctiles (coordenadas, MotionEvents, etc.) en un servicio
  • Cómo poner un oyente onclick dentro de un servicio
  • La localización de la ubicación de Android en Service no funciona hasta que reactive WiFi / mobile network
  • ¿Cómo obtengo el nombre de una clase de servicio en Android?
  • Servicio de Android matado
  • Reinicio automático de la aplicación tras la actualización del mercado
  • ¿Debo usar PendingIntent.getService () o getBroadcast con AlarmManager?
  • Mostrando una Snackbar desde dentro de un Servicio
  • Cómo desvincular correctamente los servicios
  • DispatchKeyEvent desde Service
  • AlarmManager que repite la alarma que falta al azar cuando el teléfono no está en uso
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.