Estoy tratando de ejecutar una tarea en segundo plano que se ejecuta cada minuto más o menos para una aplicación de Android, pero estoy luchando para garantizar que la tarea realmente se ejecute cada minuto. He intentado una variedad de enfoques desde SystemClock.sleep() hasta AlarmManager (alarma repetitiva y alarma fija) pero parece que a menos que el dispositivo esté cargando, cualquier tipo de sistema repetitivo tiene una tasa de repetición variable una vez que el dispositivo está desenchufado. ¿Hay alguna manera de ejecutar un servicio estable que se repite constantemente?Tarea confiable de fondo repetitivo en android
Respuesta
Ha implementado Timer? Funciona muy bien para lo que lo uso, pero una vez más no me preocupa la precisión. Por lo que sé, puede variar un poco, pero lo dudo. Me parece bastante consistente.
Editar: No soy responsable de su uso responsable o irresponsable de esta instalación;)
No estoy muy seguro de por qué nuestras dos respuestas justificaban un voto a la baja. – MattC
Especialmente porque ambos son muy relevantes para la pregunta. – MattC
El temporizador no impide dormir, y significará intervalos de activación que son mucho más grandes que un minuto si el teléfono está inactivo. – Nakedible
Si necesita tener un servicio que se ejecuta cada minuto, en el minuto, tiene dos opciones:
Utilice AlarmManager.setRepeating (RTC_WAKEUP, ...). En este caso, el teléfono se apagará, pero el RTC dentro del teléfono lo despertará cada minuto para manejar el evento repetitivo. Esto funcionará, pero no será muy exacto, ya que muchas cosas están sucediendo después de que el teléfono se active para que el código no obtenga el tiempo de ejecución de inmediato.
Obtenga un WakeLock de PowerManager y use lo que quiera para programar su código (temporizador, controlador, etc.). Esto obliga al teléfono a no dormir nunca, lo que significa que es muy probable que ejecute su código casi exactamente cuando lo solicita.
Ambos enfoques definitivamente agotarán la batería del teléfono rápidamente. Normalmente, el teléfono puede dormir durante 4 o incluso 9 minutos entre las vigilias, por lo que despertarse una vez por minuto es un cambio grande.
- 1. Rails Tarea de fondo de la tarea
- 2. tarea de fondo java
- 3. Ejecutar fondo Tarea En Javascript
- 4. tarea fondo trabajador C#
- 5. Programar tarea en android
- 6. linux: matar a la tarea de fondo
- 7. Tarea repetitiva de Android
- 8. Android: obtención confiable de la ubicación actual
- 9. Android: Renderizaciones de OpenGL cuando se ejecuta una tarea de fondo pesado
- 10. Certificado no confiable usando ksoap2-android
- 11. Android ASync tarea ProgressDialog no se muestra hasta que termina el hilo de fondo
- 12. Node.js + mejores prácticas repetitivo
- 13. Número aleatorio no repetitivo
- 14. Iniciar una tarea de fondo de larga duración
- 15. manija repetitivo Código de Propiedad en C#
- 16. Diferencia entre tarea y proceso en Android
- 17. Ejecutando una tarea de fondo efímera desde MVC
- 18. Realice una tarea al desinstalar en android
- 19. iOS: finalización de una tarea al ingresar el fondo
- 20. android: ejecutando una tarea en segundo plano usando AlarmManager
- 21. Fondo de forma de Android
- 22. Certificado RapidSSL no confiable en la tableta Android
- 23. Android WebView color de fondo
- 24. botón selector de fondo Android
- 25. Centrar una imagen de fondo en Android
- 26. Creando un servicio de fondo en Android
- 27. android: descarga de archivos en el fondo
- 28. tarea regular de Android (cronjob equivalente)
- 29. Fondo de pantalla/dimensiones de fondo de Android
- 30. MVC Reducir el código repetitivo
¿Has probado el servicio AlarmManager? –