0

in meiner Anwendung muss der Benutzer mehrere Benachrichtigungen hinzufügen, aber mein Problem ist, wenn der Benutzer die neue Benachrichtigung hinzufügen die alte gelöscht oder abgebrochen .Und ich denke, es ist aus der pendingIntent, was das Passende Flagge sollte ich verwenden?die neue Benachrichtigung stornieren die alte

hier einige meiner Code:

Calendar calendar = Calendar.getInstance(); 
    Intent intent; 
    PendingIntent pendingIntent; 
    AlarmManager alarmManager; 
    long futureInMillis; 
    switch (type) { 
     case SCHEDULE_BY_DAYS: 
      intent = new Intent(this, NotificationReceiver.class); 
      intent.putExtra(NotificationReceiver.NOTIFICATION_ID, 1); 
      intent.putExtra(NotificationReceiver.NOTIFICATION, getNotification("WAKEP UP days !!")); 
      pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
      alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
      alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
      break; 
     case SCHEDULE_BY_HOURS: 

      futureInMillis = SystemClock.elapsedRealtime() + (value * 600000); 
      intent = new Intent(this, NotificationReceiver.class); 
      intent.putExtra(NotificationReceiver.NOTIFICATION_ID, 1); 
      intent.putExtra(NotificationReceiver.NOTIFICATION, getNotification("WAKEP UP hours")); 
      pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 

      alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
      alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, futureInMillis, pendingIntent); 
      break; 

Antwort

0

Wenn Sie eine andere requestCode für jede PendingIntent Meldungen angeben werden nicht gegenseitig aufheben.

PendingIntent.getBroadcast(this,UNIQUE_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);

bearbeiten

int uniqueCode = sharedPreferences.getInt("unique_code",0) + 1; 
sharedPreferences.edit().putInt("unique_code",uniqueCode).apply() 
+0

Ich verstehe nicht, was der eindeutige Code enthalten? – user3604741

+0

einfach aufwärts zählen. Die erste Benachrichtigung erhält 1, die zweite 2, usw. Es muss nur einmalig sein und dies ist der einfachste Weg, um genau das zu gewährleisten. – F43nd1r

+0

können Sie mir einen Beispielcode geben, um zu verstehen, wie dies funktioniert, weil es auch die gleiche ID abbrechen muss. – user3604741