在我的应用程序中,我使用警报管理器每天显示通知,但我想为用户创建一个选项来取消每天的notifications.On用户单击工作警报管理器必须永久停止。
如何做到这一点?
这是在应用程序安装时被调用的方法,然后通知开始每天出现,如何永久取消它?
 public  void AlaramNotification() {
        AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        Intent notificationIntent = new Intent(StartActivity.this, AlarmReceiver.class);
        PendingIntent broadcast = PendingIntent.getBroadcast(StartActivity.this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
        cal = Calendar.getInstance();
        Calendar now = Calendar.getInstance();
        cal.set(Calendar.HOUR_OF_DAY, 11);
        cal.set(Calendar.MINUTE, 15);
        cal.add(Calendar.SECOND, 0);
        cal.set(Calendar.AM_PM,Calendar.AM);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            if (now.after(cal)) {
                Log.d("Hey","Added a day");
               cal.add(Calendar.DATE, 1);
            }
            alarmManager.setExact(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), broadcast);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24*60*60*1000, broadcast);
        }
        else {
        }
    }发布于 2019-10-16 06:16:22
你可以试试这个方法:
AlarmManager alarmManager = 
(AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(StartActivity.this, AlarmReceiver.class);
PendingIntent broadcast = PendingIntent.getActivity(StartActivity.this, 0, 
intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(broadcast);发布于 2019-10-16 05:33:06
当用户取消每日通知时,使用cancel() on alarmManager ,如下面所示,停止alarmManager。
alarmManager.cancel(broadcast);您可能需要使广播成为一个全局变量。
https://stackoverflow.com/questions/58406128
复制相似问题