Ich habe eine Homework Planner-Anwendung, für die ich einen Alarm erstellen möchte, um Benutzer an die Hausaufgaben am Vorabend/zu einer bestimmten Zeit zu erinnern. Ich habe eine Aktivität namens AddNewHomework, bei der der Benutzer ein neues Hausaufgabenelement erstellt und es zur Datenbank hinzufügt. Dieser Code wird dann aufgerufen.Android AlarmManager - Abbrechen von einer anderen Aktivität
Intent i = new Intent(this, AlarmNotificationReceiver.class);
i.putExtra("title", title);
PendingIntent pi = PendingIntent.getBroadcast(this.getApplicationContext(), (int) id, i, 0);
AlarmManager mAlarm = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
mAlarm.set(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 10 * 1000, pi);
Dies erstellt einen neuen Alarm, der in 10 Sekunden ausgelöst wird und eine Benachrichtigung erstellt.
Mein Problem ist, dass ich eine andere Aktivität namens HomeworkList habe, die eine ListView enthält und alle in der Datenbank gespeicherten Homeworks anzeigt. Wenn ein Benutzer lange auf eins klickt, hat er die Möglichkeit, es zu löschen, aber das Entfernen aus der Datenbank wird den Alarm nicht entfernen.
Ich habe nach Code gesucht, den ich verwenden kann, um den Alarm zu entfernen, aber ich habe nichts gefunden, was mir erlaubt zu verstehen, wie der Alarm von dieser anderen Aktivität abgebrochen wird. Ich weiß, dass ich den PendingIntent gleich machen muss, aber wie mache ich das, weil ich nicht auf den Kontext von der anderen Klasse zugreifen kann. (Ich denke nicht).
Sie haben versucht, 'mallarm.cancel (PendingIntent);' zum Abbrechen des Alarmmanagers? –
@imrankhan Ich habe, aber ich brauche eine identische PendingIntent für sie den Alarm zu finden und abzubrechen. Mein Problem ist das Erstellen der gleichen PendingIntent – TomRichardson