Comment répéter la notification quotidienne sur une heure spécifique dans android par le service background
Hi je travaille sur l'application où j'ai mis la notification sur la date et l'heure saisies par l'utilisateur par le biais du service background. Maintenant je veux régler notification / alarme tous les jours à 18 heures pour demander à l'utilisateur veut-il ajouter une autre entrée? Comment puis-je y parvenir? Devrais-je utiliser le même service d'arrière-plan ou récepteur de radiodiffusion? S'il vous plaît me donner une meilleure solution pour cela et tutoriel sera une excellente idée. Merci à l'avance.
2 réponses
paramétrez D'abord le Gestionnaire D'alarme comme ci-dessous
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);
créer une classe de récepteur de radiodiffusion "AlarmReceiver" dans cette raise des notifications lorsque 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++;
}
}
et dans le fichier manifest, enregistrer récepteur pour la classe AlarmReceiver:
<receiver android:name=".AlarmReceiver"/>
aucune permission spéciale n'est requise pour déclencher des événements via alarm manager.
la réponse de N. V. Rao est correcte, mais n'oubliez pas de mettre le receiver
balise à l'intérieur de la balise application dans le AndroidManifest.fichier xml:
<receiver android:name=".alarm.AlarmReceiver" />