Realización del despertador perfecto en Android | Autor: Hrithik Sharma | Agosto de 2021
Paso 1. Cree un BroadcastReceiver:
- Primero crea una clase extendida
BroadcastReceiver
E implementaronReceive()
Métodos en la clase
BroadcastReceiver
Es una clase para recibir y procesar transmisiones enviadas a su aplicación. En el caso de una alarma del sistema, cuando suena la alarma, recibe una transmisión del servicio de alarma del sistema.
Siempre que su dispositivo se reinicie BroadcastReceiver
Que te llamen y con la ayuda Intent
Podemos usar la acción para volver a registrar todas las alertas. ACTION_BOOT_COMPLETED
.
En otras partes, puede realizar sus tareas programadas (por ejemplo, enviar notificaciones de alerta).
Aprenderemos más sobre cómo enviar notificaciones a su aplicación en el próximo artículo.
- Registre este receptor en su
AndroidManifest.xml
documento
<action android:name="android.intent.action.BOOT_COMPLETED"/>
añadir <intent-filter>
De esta forma podemos manejar esta situación para volver a registrar todas las alarmas programadas cuando se reinicia el dispositivo.
Paso 2: Establecer en el evento:
A continuación, se muestra una explicación paso a paso del código utilizado para programar una alerta en cualquier momento específico del evento:
- obtener
AlarmManager
Ejemplo
AlarmManager
Es en realidad un servicio del sistema, por lo que se puede descargar desde Context.getSystemService()
Función con parámetros Context.ALARM_SERVICE
.
Android permite enviar un conjunto de información al objetivo receiver
(ES DECIR AlarmReceiver
, Aquí es cuando se dispara la alarma definida en el paso 1).
El destinatario designado y la información correspondiente se pueden encontrar en Intent
Configurándolo action
y extra
. Esta información estará disponible en el futuro onReceive()
En la devolución de llamada especificada BroadcastReceiver
y action
Verifique los campos para asegurarse de que la transmisión del sistema sea correcta.
- Prepárese para PendingIntent
PendingIntent
Es una referencia al token mantenido por el sistema Android. Por lo tanto, si el usuario mata la aplicación y puede transmitirse en algún momento en el futuro, seguirá funcionando.
Segundo parámetro getBroadcast()
sí Código de solicitud Cuando desee programar varias alarmas, esta debe ser única para cada pendiente de intención.
para tu información:
Hay 4 funciones para la inicialización PendingIntent
Pero solo se aplica 1 de ellos:
PendingIntent.getBroadcast()
-Adecuado paraAlarmManager
PendingIntent.getActivity()
PendingIntent.getActivities()
PendingIntent.getService()
Los letreros indican cómo el sistema debe manejar nuevos y existentes PendingIntent
Tener lo mismo Intent
. Indica que el sistema utilizará su método predeterminado para manejar la creación.
PendingIntent
. Aquí hay unos ejemplos:
- FLAG_UPDATE_CURRENT
- FLAG_CANCEL_CURRENT
- FLAG_IMMUTABLE
- Configure la hora de la alarma y envíela al sistema
La mejor forma de configurar la hora de la alarma es utilizar Calendar
Propósito
La forma más sencilla de configurar una alarma es utilizar setExactAndAllowWhileIdle()
Con parámetros RTC_WAKEUP
No importa si el sistema está en modo dormido (modo inactivo), esto le indicará a Android que active la alarma con precisión a la hora especificada.
Si quieres repetir tu alarma a una hora específica Día de la semana Luego:
Configure el día de la semana en el que desea que se repita la alarma Calendar.DAY_OF_WEEK
Y use setRepeating()
El método del administrador de alarmas.
Más métodos de alarmManager:
alarmManager.set()
alarmManager.setExact()
alarmManager.setAlarmClock()
alarmManager.setInExactRepeating()
alarmManager.setRepeating()
alarmManager.setTime()
alarmManager.setTimeZone()