отмена тревоги в alarm manager?

#android

#Android

Вопрос:

Когда пользователи вводят дату и время, он затем помещает их в alarm manager

 public Manager(Context context){
       mContext = context;
       tolarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
       }

public void setSilent(Long id, Calendar when){

     Intent go = new Intent(mContext, someclass.class);
     PendingIntent golow = PendingIntent.getBroadcast(mContext, 0 , i, PendingIntent.FLAG_ONE_SHOT);
    toAlarmManager.set(AlarmManager.RTC_WAKEUP, when.getTimeInMillis(), golow);
  

когда будильник установлен, как мне удалить его из будильника, если я больше не хочу будильник?

Ответ №1:

 int RC = alarmRequestCode; // your request code is 0
Intent intentAlarm = new Intent(context, AlarmReciever.class);
PendingIntent sender = PendingIntent.getBroadcast(context, RC, intentAlarm, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(context.ALARM_SERVICE);
alarmManager.cancel(sender);
  

Ответ №2:

Вы делаете

 toAlarmManager.cancel(golow);
  

который удаляет любые сигналы тревоги с соответствующим намерением.

Комментарии:

1. Могу ли я в любом случае сделать это из удаленного файла… скажем, что приведенный выше код находится в text.java и я хочу удалить сигнал тревоги изнутри test1.java , когда я пытаюсь протестировать. mAlarmManager.cancel(test.golow); или test. mAlarmManager.cancel (golow); это не работает, он не может найти golow

2. Вы должны иметь возможность просто воссоздать toAlarmManager и golow в новом классе. В качестве альтернативы, вы могли бы объявить их как public переменные в test.java и ссылайтесь на них таким образом.