2012-02-24 35 views
30

Estoy desarrollando una aplicación donde empiezo un servicio si el usuario habilita una característica en particular (en mi aplicación). Deseo seguir ejecutando este servicio incluso después de que el usuario cierre mi aplicación. ¿Cómo puedo hacer esto? plz ayuda¿Cómo mantener un servicio ejecutándose en segundo plano incluso después de que el usuario abandona la aplicación?

+1

¿No apaga el servicio cuando el usuario sale de la aplicación? Correr en segundo plano sin una actividad en primer plano es una especie de servicios para lo que están destinados. ¿Puedes aclarar cuál es tu problema exactamente? – DeeV

Respuesta

20

Desde developer.android.com

Un servicio es un componente que se ejecuta en segundo plano para realizar operaciones de larga duración o para realizar un trabajo para procesos remotos. Un servicio no proporciona una interfaz de usuario. Por ejemplo, un servicio podría reproducir música en segundo plano mientras el usuario está en una aplicación diferente, o podría recuperar datos a través de la red sin bloquear la interacción del usuario con una actividad. Otro componente, como una actividad , puede iniciar el servicio y permitir que se ejecute o se una a él en orden para interactuar con él. Un servicio se implementa como una subclase del Servicio y puede obtener más información al respecto en la guía para desarrolladores de Servicios.

Por lo tanto, mientras crea un servicio y el usuario sale de la aplicación, seguirá ejecutándose. Como en el ejemplo anterior.

Esto debe darle toda la información que necesita: https://developer.android.com/guide/components/services.html

+7

Esto no mantendrá el servicio si un Administrador de tareas, que ahora es bastante común en los teléfonos, mata el servicio. El comando onStart (...) en el servicio debe devolver START_STICKY – user1406716

+1

Sí, START_STICKY volverá a crear el servicio si se elimina. – EGHDK

+0

@EGHDK ¿Cómo se implementa esto? – Sauron

6

puede utilizar el gestor de alarma para cualquier servicio en segundo plano.

Para un tiempo en particular, usted desea realizar algo que pueda servir.

Y para el proceso continuo, puede iniciar el servicio desde el administrador de alarmas.

4

Una de las formas propuestas al androide:

Un servicio comenzó puede utilizar el startForeground(int, Notification). API para poner el servicio en un estado de primer plano, donde el sistema considera que es algo que el usuario conoce activamente y, por lo tanto, no es candidato para matar cuando tiene poca memoria. (Es todavía teóricamente posible que el servicio que se mató bajo presión de memoria extrema de la aplicación actual en primer plano, pero en la práctica esto no debería ser una preocupación.)

Otra forma es reiniciar el servicio cuando su parado (El sistema llamará a onDestroy() en el servicio que está parado)

Cuestiones relacionadas