¿Cómo ejecutar un servicio de 9 AM a 4 PM todos los días?
Pregunta: 1 => Quiero ejecutar un servicio de 9 AM a 4 PM todos los días. Planeo dos método. ¿Cuál es el mejor?
Método 1: Servicio interior: (Este servicio se inicializó en la creación de actividad cuando se inicia la primera aplicación)
- Android startActivity de la intención en el servicio
- Android service stopSelf (int)
- OnStart () y onStartCommand () siguen llamados en 2.0 y superiores
- Servicio MediaPlayer Android
- Android - ¿Cómo es posible que un servicio siga funcionando después de que la Actividad haya sido cerrada?
if (9 AM <=current time<=4 PM) { fetch data from server. }
Método 2:
En Actividad, utilice el administrador de alarmas e inicie un servicio basado en el administrador de alarmas. Luego, despierte el día siguiente y comience el servicio.
¿Cuál es el mejor método?
Pregunta: 2 => ¿Cómo encontrar un servicio en ejecución o no mediante programación?
- ¿Necesito un servicio en mi aplicación Android?
- No se puede solucionar la excepción MediaController.show ()
- Captura de notificaciones de otras aplicaciones
- Obtener el color de píxel en segundo plano en Android
- Vinculación a un servicio desde otra aplicación
- ¿Puedo llamar a stopSelf () en Service.onStartCommand?
- ¿Diferencia entre START_STICKY y START_REDELIVER_INTENT?
- ¿Cómo puedo llamar a startIntentSenderForResult en el servicio correctamente?
Escriba un BroadcastReciever para recibir la emisión ON_BOOT (tendrá que agregar el permiso apropiado y el filtro de intenciones a su manifiesto). BroadcastReceiver sólo existe para crear una notificación de 9 am con el Administrador de alarmas. La alarma programada tiene un PendingIntent que lanzará el servicio. Obviamente, ajuste la alarma para repetir cada 24 horas.
Cuando se inicia, el servicio simplemente se ejecuta normalmente hasta las 4 pm, momento en el que se detiene.
El método onStartCommand () del servicio debe devolver los indicadores apropiados para que el sistema lo reinicie si se bloquea o se cancela.
Lo único que no puedo averiguar es cómo iniciar automáticamente el servicio la primera vez que se instala. Esperar a que el dispositivo se reinicie no es muy práctico. Cuando escribo aplicaciones como esta, normalmente se combinan con una actividad que tiene controles para iniciar y detener el servicio.