我正在尝试使用它来设置每天发出的警报。
String alarm = Context.ALARM_SERVICE;
Calendar calendar = Calendar.getInstance();
AlarmManager am = (AlarmManager)getActivity().getSystemService(alarm);
Intent intent = new Intent("NEW_ITEM");
PendingIntent sender = PendingIntent.getBroadcast(getActivity(), 0, intent, 0);
calendar.setTimeInMillis(System.currentTimeMillis());
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1*AlarmManager.INTERVAL_DAY, sender);
答案 0 :(得分:1)
没有运行它,代码对我来说很好......显然,如果你每次启动活动时设置此警报,警报将立即关闭:am.setRepeating(AlarmManager.RTC_WAKEUP, **calendar.getTimeInMillis()**, 1*AlarmManager.INTERVAL_DAY, sender);
告诉警报管理器警告正确现在(第二个参数)并在一天内重复(第三个参数,假设你的常数是正确的)。
如果您希望警报仅在24小时内启动,只需将该行更改为:
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + AlarmManager.INTERVAL_DAY, AlarmManager.INTERVAL_DAY, sender);
答案 1 :(得分:0)
代码看起来不错,但你必须要注意一件事。如果用户决定再次设置警报(例如,通过点击“设置警报”按钮),则将替换旧警报。如果您想避免这种情况,请查看以下主题:Using Alarmmanager to start a service at specific time