siempre - Cómo repetir la notificación diariamente en un tiempo específico en Android a través del servicio en segundo plano
servicio siempre activo android studio (2)
La respuesta de NVRao es correcta, pero no olvide colocar la etiqueta del receiver
dentro de la etiqueta de la aplicación en el archivo AndroidManifest.xml:
<receiver android:name=".alarm.AlarmReceiver" />
Hola, estoy trabajando en una aplicación en la que he configurado la notificación de la fecha y la hora introducidas por el usuario a través del servicio en segundo plano. Ahora quiero configurar una notificación / alarma diariamente a las 6 pm para preguntar al usuario si desea agregar otra entrada. ¿Cómo puedo conseguir esto? ¿Debo usar el mismo servicio de fondo o el mismo receptor de transmisión? Por favor, dame una mejor solución para eso y el tutorial será una gran idea. Gracias por adelantado.
Primero configura el Administrador de alarmas como se muestra abajo
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18);
calendar.set(Calendar.MINUTE, 30);
calendar.set(Calendar.SECOND, 0);
Intent intent1 = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0,intent1, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) MainActivity.this.getSystemService(MainActivity.this.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
Cree una clase de receptor de emisión "AlarmReceiver" en esto elevar las notificaciones cuando onReceive
public class AlarmReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
long when = System.currentTimeMillis();
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(context, EVentsPerform.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder mNotifyBuilder = new NotificationCompat.Builder(
context).setSmallIcon(R.drawable.applogo)
.setContentTitle("Alarm Fired")
.setContentText("Events to be Performed").setSound(alarmSound)
.setAutoCancel(true).setWhen(when)
.setContentIntent(pendingIntent)
.setVibrate(new long[]{1000, 1000, 1000, 1000, 1000});
notificationManager.notify(MID, mNotifyBuilder.build());
MID++;
}
}
y en el archivo de manifiesto, registre el receptor para la clase AlarmReceiver:
<receiver android:name=".AlarmReceiver"/>
No se requieren permisos especiales para generar eventos a través del administrador de alarmas.