web-dev-qa-db-fra.com

Comment créer une notification de rappel

J'ai référé de nombreux sites mais je ne suis toujours pas en mesure de créer la notification (rappel ou alarme) Je ne sais pas exactement comment créer et travailler avec. Son pour informer/rappeler l'utilisateur de la tâche et également fournir des conseils quotidiens à l'utilisateur .. Je serai heureux d'avoir votre aide pour le faire et comment le coder aussi ...

Cordialement :) Merci pour votre aide à l'avance.

15
Rushabh

Vous avez besoin de deux choses:

  • AlarmManager: pour programmer votre notification sur une base régulière (quotidienne, hebdomadaire, ..).
  • Service: pour lancer votre notification lorsque AlarmManager s'éteint.

Voici un exemple de base:

Dans votre activité:

Intent myIntent = new Intent(this , NotifyService.class);     
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
PendingIntent pendingIntent = PendingIntent.getService(this, 0, myIntent, 0);

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.AM_PM, Calendar.AM);
calendar.add(Calendar.DAY_OF_MONTH, 1);

alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1000*60*60*24 , pendingIntent);

Cela déclenchera l'alarme chaque jour à minuit (12 h). Vous pouvez changer cela si vous le souhaitez.

Maintenant, créez un Service NotifyService et mettez ce code dans sa onCreate():

@Override
public void onCreate() {
    NotificationManager mNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.notification_icon, "Notify Alarm strart", System.currentTimeMillis());
    Intent myIntent = new Intent(this , MyActivity.class);     
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0);
    notification.setLatestEventInfo(this, "Notify label", "Notify text", contentIntent);
    mNM.notify(NOTIFICATION, notification);
}

Et ce code affichera la notification lorsque l'alarme est reçue.

Bonne chance!

39
iTurki

voici un peu Tutoriel vidéo YouTube sur les notifications quotidiennes. Vous pouvez trouver le code source dans la description.

Cette vidéo n'est pas faite par moi-même. Mais je pense que c'est une aide rapide. Bien que je recommande certaines modifications car le Notification.Builder est obsolète:

1.

import Android.support.v4.app.NotificationCompat;

2.

// Change: Notification mNotify = new Notification.Builder(this) to
Notification mNotify = new NotificationCompat.Builder(this)

S'amuser!

4
Wicked161089