如何在android中以编程方式取消报警?

时间:2013-11-23 07:07:15

标签: android android-intent android-alarms

我使用此代码创建警报并且它可以正常工作。请建议如何取消该警报。

Intent alarmIntent = new Intent(AlarmClock.ACTION_SET_ALARM);
            alarmIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            alarmIntent.putExtra(AlarmClock.EXTRA_MESSAGE, mEdtTitle.getText()
                    .toString());
            Calendar calendar = Calendar.getInstance();

            calendar.set(Calendar.HOUR, mTimePicker.getCurrentHour());
            calendar.set(Calendar.MINUTE, mTimePicker.getCurrentMinute());

            calendar.set(Calendar.DATE, mDatePicker.getDayOfMonth());
            calendar.set(Calendar.MONTH, mDatePicker.getMonth());
            calendar.set(Calendar.YEAR, mDatePicker.getYear());

            calendar.add(Calendar.MINUTE, 1);
            alarmIntent.putExtra(AlarmClock.EXTRA_HOUR,
                    calendar.get(Calendar.HOUR_OF_DAY));
            alarmIntent.putExtra(AlarmClock.EXTRA_MINUTES,
                    calendar.get(Calendar.MINUTE));
            alarmIntent.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
startActivity(alarmIntent);

提前致谢

2 个答案:

答案 0 :(得分:2)

您需要使用cancel(...)中的AlarmManager方法,使用您用来设置闹钟的相同PendingIntent。例如:

this.getAlarmManager().cancel(mAlarmPendingIntent); (这是指取消警报的活动或服务)。

PendingIntent创建为:

mAlarmPendingIntent = PendingIntent.getActivity(this, requestCode, intent, flags);

答案 1 :(得分:2)

您必须调用cancel方法:link

PendingIntent应与您之前使用AlarmManager设置的相同。