У меня есть приложение «Домашнее задание», которое я хочу создать для напоминания пользователям о домашней работе накануне/в определенное время. У меня есть Activity под названием AddNewHomework, где пользователь создает новый элемент домашней работы и добавляется в базу данных. Затем этот код вызывается.Android AlarmManager - Отмена из другой активности
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);
Это создает новый Тревога, которая срабатывает через 10 секунд и создает уведомление.
Моя проблема в том, что у меня есть другое действие, называемое HomeworkList, которое содержит ListView и отображает все домашние задания, хранящиеся в базе данных. Если пользователь долго нажимает на один, то у них есть возможность его удалить, однако удаление его из базы данных не приведет к удалению тревоги.
Я искал код, который я могу использовать для удаления тревоги, однако я не нашел ничего, что позволило мне понять, как отменить будильник из этой различной деятельности. Я знаю, что мне нужно сделать PendingIntent одинаковым, но как это сделать, поскольку я не могу получить доступ к контексту из другого класса. (Я не думаю).
вы попробовали 'mAlarm.cancel (PendingIntent);' для отмены будильника? –
@imrankhan У меня есть, однако мне нужен одинаковый PendingIntent, чтобы найти будильник и отменить его. Моя проблема заключается в создании идентичного PendingIntent's – TomRichardson