2011-03-09 16 views
6

Estoy confundido acerca del ciclo de vida del servicio.
He muchas preguntas siguientes:ciclo de vida del servicio iniciado y encuadernado?

  1. Si mi aplicación llama startService() varias veces a un servicio, ¿habrá múltiples servicios que se ejecutan simultáneamente? ¿O solo uno?

  2. Como primero, si llamo al bindService() varias veces a un servicio en mi aplicación, ¿qué pasará con mi aplicación?

  3. Supongamos que tengo un servicio que se ha iniciado a través de startService(), y luego lo enlace para indicarle que haga algo. en este caso, si indico (a través de esta interfaz de Binder) al Servicio que ejecute su método stopSelf(), ¿el Servicio en ejecución se detiene inmediatamente?

  4. Supongamos de nuevo que tengo un servicio que se puede iniciar solamente por bindService(), y el onUnbind se anula para devolver cierto, en este caso, debería llamar stopSelf método explícitamente a la parada del servicio?

Respuesta

-1

Sí, puede ejecutar múltiples servicios simultáneamente. Pero si está usando un servicio, debe hacerlo con cuidado. Si está comenzando un servicio, debe detener ese servicio con cualquier método, como onDestroy() o un método personalizado, ya que cada vez que finaliza su actividad, el servicio se sigue ejecutando en segundo plano.

Una cosa más: utilice el servicio solo cuando necesite un proceso en segundo plano como un reproductor multimedia; de lo contrario, puedes lograr todo esto con actividad.

Para obtener más información, lea existe la Android developer service document.

4
  1. una sola instancia de un servicio en un dispositivo Android. Los servicios iniciados se inician solo una vez, otras llamadas de inicio darán lugar a llamadas repetidas de onStartCommand, pero no iniciarán nuevas instancias del mismo servicio.

  2. Si inicia un servicio enlazado enlazándolo, y este es el primer uso del servicio, se creará una nueva instancia y se llamará al método onBind.

  3. Sí. Sin embargo, los hilos iniciados por el servicio y los oyentes registrados por el servicio serán filtrados. Debe cuidar estos recursos en el método onDestroy.

  4. No hay necesidad de llamar a detenerse. Cuando el último usuario se desvincula del servicio, el servicio se destruye automáticamente.

Cuestiones relacionadas