2011-06-21 9 views
7

Tengo una ejecución del servicio androide, pero quiero ejecutar un método de servicio específica cada X horas para actualizar los datos. ¿Cuál es el mejor enfoque para hacer esto sin desperdiciar recursos de Android?¿Cómo ejecuto un método de servicio periódicamente?

+0

¿Por qué no acaba de iniciar el servicio una vez y luego agregar un contador de tiempo o hacer el sueño de rosca para la cantidad de tiempo que te gusta? – CodeKrieger

+0

Esto requeriría que el proceso de servicio ejecute * siempre *. Por horas. Esto no es efectivo en recursos. –

+0

Gracias! Estoy aprendiendo, voy a buscar cómo agregar el temporizador. Cualquier sugerencia? – Ferran

Respuesta

8

mira en el AlarmManager.

Aclaración: ya que desea que el método de servicio para funcionar con intervalos de una hora, usted no desea mantener su proceso de servicio que se ejecuta durante todo este tiempo. Mediante el uso del AlarmManager, el sistema operativo puede matar el servicio cuando no es necesario y, a continuación, abrirlo para ejecutar el método cuando sea el momento.

+0

¿Qué sucede si los intervalos son cuestión de minutos? ¿Es una buena idea usar el AlarmManager? ¿O es mejor hacer que el hilo invocado por el servicio duerma durante unos minutos? – Leeeeeeelo

+1

@Leeeeeeelo - para la eficiencia, con intervalos pequeños (menos de 10-15 minutos), no hay que ir con AlarmManager. Hay discusiones sobre eso en otros lugares en SO, p. http://stackoverflow.com/questions/11434056/how-to-run-a-method-every-x-seconds –

Cuestiones relacionadas