我想要在特定时间触发警报,此警报只会“一次”“重复”,我使用了以下警报管理器方法,但它每天重复!!我怎样才能防止警报重复?请帮帮我..
final PendingIntent sender = PendingIntent.getBroadcast(this.ctx, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
final AlarmManager am = getAlarmManager();
am.set(AlarmManager.RTC_WAKEUP,getTriggerTime(), sender);
提前致谢。
答案 0 :(得分:0)
由于您使用AlarmManager.set方法,因此不应该重复。您确定每次打开应用程序时都没有安排它吗?如果您显示的代码段每次打开应用程序或在后台服务中定期运行时都会运行,那么每次执行时都会安排警报。
如果是这种情况,那么您应该检查某种标志,指示警报是否已经安排一次,如果是,则阻止此代码再次运行。
答案 1 :(得分:0)
使用此:
pendingIntent = PendingIntent.getService(
AndroidAlarmSMS.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
alarmManager.set(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), pendingIntent);