0

AlarmManager.cancel()을 사용하여 알람을 취소하려고하지만 분명히 작동하지 않는 것 같습니다. 나는 코드에서 보았 듯이 내가 사용했던 PendingIntent.FLAG_UPDATE_CURRENT를 사용해야한다는 어딘가를 읽었다. 알람 설정시, 프로그램이 코드를 사용하여 자동으로 알람을 설정하기를 원하므로 아래 코드를 사용하십시오.AlarmManager.cancel()을 사용하여 알람을 삭제하면 작동하지 않습니다.

에서 setalarm 기능 :

public void setAlarm(DateTime date, String message) { 
     Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); 
     i.putExtra(AlarmClock.EXTRA_MESSAGE, message); 
     i.putExtra(AlarmClock.EXTRA_HOUR, date.getHourOfDay()); 
     i.putExtra(AlarmClock.EXTRA_MINUTES, date.getMinuteOfHour()); 
     i.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent pendingIntent = PendingIntent.getActivity(appContext.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager manager = (AlarmManager) appContext.getApplicationContext().getSystemService(Context.ALARM_SERVICE); 
     manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pendingIntent); 
     return; 
    } 

cancelAlarm 기능 :

public void cancelAlarm(DateTime date, String message) { 
     Intent i = new Intent(AlarmClock.ACTION_SET_ALARM); 
     i.putExtra(AlarmClock.EXTRA_MESSAGE, message); 
     i.putExtra(AlarmClock.EXTRA_HOUR, date.getHourOfDay()); 
     i.putExtra(AlarmClock.EXTRA_MINUTES, date.getMinuteOfHour()); 
     i.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent pendingIntent = PendingIntent.getActivity(appContext.getApplicationContext(), 0, i, PendingIntent.FLAG_UPDATE_CURRENT); 
     AlarmManager manager = (AlarmManager) appContext.getApplicationContext().getSystemService(Context.ALARM_SERVICE); 
     manager.cancel(pendingIntent); 
     return; 
    } 

어떤 아이디어? 나는 위트를 끝내고있다. 미리 감사드립니다! 당신은 알람을 설정하면

답변

0

이 작업을 수행 :

manager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pendingIntent); 

이는 알람이 즉시 꺼 갈 수 있도록 할, System.currentTimeMillis()에서 하차 갈 수있는 알람을 설정합니다. 취소를 요청하면 알람이 이미 사라져 더 이상 존재하지 않기 때문에 알람을 취소하라는 전화가 작동하지 않습니다.

+0

은 의미가 있습니다. 고마워요! –

관련 문제