Ich schreibe so etwas wie eine Erinnerung für Benutzer. Benutzer werden Erinnerungen für ihre Ereignisse festlegen, wenn die Zeit gekommen ist, wird ein wiederholender Alarm ausgelöst, um eine Benachrichtigung in der Statusleiste auszulösen. Aber der Alarm scheint ununterbrochen zu sein, nachdem ich die Benachrichtigung ausgewählt oder die Benachrichtigung gelöscht habe. Ich bin mir nicht sicher, wo ich diesen wiederholenden Alarm abbrechen soll. einige der Codes sind unten: die sich wiederholende Alarm in meiner HaupttätigkeitWie kann dieser sich wiederholende Alarm abgebrochen werden?
alarmTime = Calendar.getInstance();
Intent intent = new Intent(this, AlarmReceive.class);
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmTime.add(Calendar.MINUTE,offset_time);
//Schedule the alarm
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), 30 * 1000, sender);
In meinem OnReceive Methode einrichten, Ich zeige nur die Benachrichtigung in der Statusleiste und das Kennzeichen als FLAG_AUTO_CANCEL
manager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
// Set the icon, scrolling text and timestamp
Notification notification = new Notification(R.drawable.medical, text, System.currentTimeMillis());
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, i, 0);
notification.flags = Notification.FLAG_AUTO_CANCEL;
manager.notify(R.string.service_text, notification);
Wie kann ich den Alarm stoppen, wenn der Benutzer die Benachrichtigung auswählt oder löscht?
Ich möchte diesen Alarm löschen, nachdem Benutzer die Benachrichtigung sieht, aber die Benachrichtigung ist in onReceive definiert. Wie kann ich feststellen, ob der Benutzer die Benachrichtigung in meiner Hauptaktivität kennt, bevor ich den Alarm abbringe Danke, – Wen
@Wen: Verwenden Sie eine andere Absicht (zB andere Aktion), um Ihre Hauptaktivität aus der Benachrichtigung zu starten . Wenn Sie eine vorhandene Instanz der Hauptaktivität in den Vordergrund bringen, löst Ihre Benachrichtigung in der Aktivität onNewIntent() aus, sodass Sie den Alarm dort abbrechen können. – CommonsWare
Die Benachrichtigung löst eine andere Aktivität aus. Was meinen Sie, wenn Sie eine Differenz verwenden, um die Aktivität von der Benachrichtigung aus zu starten, anstatt sie für den Launcher zu verwenden? – Wen