2010-02-25 12 views
13

Para realizar alguna acción durante algún tiempo me encontré con que hay varias opciones:acción programación Android

  1. uso AlarmManager
  2. uso ScheduledExecutorService
  3. método
  4. uso de Handler postDelayed

Lo que es grande diferencia de todo esto? ¿Cuál es la mejor práctica de hacer una acción programada?

+1

Esto muestra una buena aclaración http://stackoverflow.com/a/6558821/1016544 –

Respuesta

16
  1. AlarmManager es el "Temporizador" global, este hombre puede reactivar su aplicación, incluso si no se inició. Tipo pesado
  2. ScheduledExecutorService: forma estándar de Java para hacer algunas cosas programadas, utilizado en JSE, simple y familiar para los desarrolladores de Java. El trabajo se ejecutará en un hilo diferente al de la interfaz de usuario o del hilo que programa este trabajo. Muy adecuado para los servicios que no se ocupan de la interfaz de usuario y para procesar cosas largas y pesadas.
  3. Handler: forma de Android para programar el trabajo, el trabajo se ejecuta en el hilo de UI (si el controlador se creó en la interfaz de usuario), por lo que no puede ser muy complicado o simplemente se congelará la interfaz de usuario.
+1

También es fácil crear un controlador en el hilo de trabajo. –

6

AlarmManager es independiente de su aplicación y garantiza que la tarea se ejecutará.
Los otros dos se ejecutan como parte de Activity/Service con las restricciones de ciclo de vida correspondientes (por ejemplo, pueden eliminarse en cualquier momento).

+1

No solo eso, cuando el dispositivo está bloqueado y la CPU también duerme, no se dispara aunque no se elimine el proceso de la aplicación. – Lisandro

Cuestiones relacionadas