Android: невозможно отменить тревогу с помощью AlarmManager - PullRequest
0 голосов
/ 14 мая 2018

Это то, что я использую для установки будильника, и это видно, когда я получаю все будильники, установленные на устройстве.

    /**
     * Set alarm
     **/


    Intent alarmIntent = new Intent(context, LocalReminderReceiver.class);
    AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    long time = Long.valueOf("1526112720000");
    PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 1, alarmIntent, FLAG_UPDATE_CURRENT);
    manager.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);

    /**
     * Cancel alarm
     */
    PendingIntent sender = PendingIntent.getBroadcast(context, 1, alarmIntent, PendingIntent.FLAG_CANCEL_CURRENT);
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    alarmManager.cancel(sender);
    sender.cancel();

Я что-то упустил?

1 Ответ

0 голосов
/ 14 мая 2018

Для установки будильника используйте строку ниже

 Intent intent = new Intent(context, AlarmReceiverActivity.class);

 PendingIntent pendingIntent = PendingIntent.getActivity(context, requestID, intent, 0);

 AlarmManager am = (AlarmManager)context.getSystemService(Activity.ALARM_SERVICE);
 am.set(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent);

Для отмены тревоги используйте строку ниже

 AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
 Intent intent = new Intent(context, AlarmReceiverActivity.class);
 PendingIntent pendingIntent = PendingIntent.getActivity(context,requestID, intent, 0);
 am.cancel(pendingIntent);

Над обоими кодами для установки и отмены alram работает для меня. Вы должны просто передать тот же идентификатор запроса , чтобы установить и отменить определенный сигнал тревоги

...