Ну, я достаточно старался найти ответ на вопрос, упомянутый выше, но пока мои усилия были тщетными. Я создал будильник с помощью класса будильника, который будет запускать уведомление через регулярные промежутки времени (вероятно, около 5 дней). Ниже приведен код реализации тревоги, происходящей внутри кнопки onClick().Как отменить повторное уведомление в определенную дату
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent notificationIntent = new Intent("android.media.action.DISPLAY_NOTIFICATION");
notificationIntent.addCategory("android.intent.category.DEFAULT");
PendingIntent broadcast = PendingIntent.getBroadcast(this, 100, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
Calendar cal = Calendar.getInstance();
if(fromDateEtxt.getText().toString().length()>0) {
cal.add(Calendar.HOUR_OF_DAY, 10);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(), 5 * 24 * 60 * 60 * 1000, broadcast);
}
Код для приемника вещания.
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent notificationIntent = new Intent(context, NotificationActivity.class);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addParentStack(NotificationActivity.class);
stackBuilder.addNextIntent(notificationIntent);
PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
Notification notification = builder.setContentTitle("Demo App Notification")
.setContentText("New Notification From Demo App..")
.setTicker("New Message Alert!")
.setSmallIcon(R.mipmap.ic_launcher)
.setContentIntent(pendingIntent).build();
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, notification);
}}
Метод onClick(), кроме запуска тревоги, также изменяет активность. Теперь проблема, с которой я столкнулась, - я не знаю, как остановить повторяющуюся тревогу. Я хочу остановить будильник на определенную дату. Во-вторых, я был смущен, использовать ли будильник для отмены тревоги или использовать другой аварийный сигнал для отмены предыдущего аварийного сигнала, как показано на рисунке here. Помимо этого, я хотел знать, может ли сигнал тревоги быть отменен из другого действия или эта точка кажется ненужной, и ограничение на дату может быть установлено заранее?
Хорошо, что для отмены в конкретную дату я должен создать новый сигнал тревоги в том же действии или в другом действии, потому что активность, в которой присутствует метод onClick(), больше не будет открываться. Так что создаст еще один сигнал тревоги (тот, который используется для отмены) в методе Onclick(), создайте предел для тревожных дней до создания тревоги ?? – rohanagarwal94
Я не уверен, что ваш конкретный вариант использования, но если вы знаете дату отмены в момент нажатия кнопки, вы можете создать будильник для его отмены. – jaibatrik
Заранее спасибо за помощь. Надеюсь, что это работает. – rohanagarwal94