Sto scrivendo qualcosa come un promemoria per gli utenti. Gli utenti imposteranno promemoria per i loro eventi, quando arriverà il momento, verrà impostato un allarme ripetuto per attivare una notifica sulla barra di stato. Ma l'allarme sembra non-stop dopo che ho selezionato la notifica o cancellato la notifica. Non sono sicuro di dove cancellare questo allarme ripetuto. Qui di seguito sono alcuni dei codici: Impostare l'allarme si ripete nella mia attività principaleCome cancellare questo allarme ripetuto?
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);
Nel mio metodo OnReceive, ho appena visualizzo la notifica nella barra di stato e impostare il flag come 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);
Come posso interrompere l'allarme quando l'utente seleziona la notifica o la cancella?
voglio cancellare questo allarme dopo che l'utente vede la notifica, ma la notifica è definito in onReceive. Quindi, come posso determinare se l'utente conosce la notifica nella mia attività principale prima di annullare l'allarme? Grazie – Wen
@Wen: utilizzare un diverso intento (ad esempio, un'azione diversa) per avviare l'attività principale dalla notifica rispetto a quella utilizzata per il programma di avvio . Oppure, se stai portando un'istanza esistente dell'attività principale in primo piano, la tua Notifica si attiverà su NewNewIntent() nell'attività, quindi puoi cancellare l'allarme lì. – CommonsWare
La notifica attiverà un'altra attività. Che cosa intendi con un diff Intent per avviare l'attività dalla notifica rispetto all'uso per il programma di avvio? – Wen