我的闹钟开始通知服务。我希望每个月的第7天每天14点发出警报
我的收件人:
public class AlarmReceiver extends BroadcastReceiver {
private AlarmManager alarmMgr;
private PendingIntent alarmIntent;
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("RECEIVER STARTED");
if (checkForDay()) {
alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent1 = new Intent(context, AlarmService.class);
alarmIntent = PendingIntent.getService(context, 0, intent1, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 14);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
alarmMgr.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
System.out.println("ALARM SET");
} else
System.out.println("ALARM NOT SET");
}
private boolean checkForDay() {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
return calendar.get(Calendar.DATE) == 7;
}
我的接收器从BOOT_COMPLETE开始,并从MainActivity onCreate()中的广播开始; 但是有问题。
如果setInexactRepeating()不好,如何实现正确重复每月警报,因为间隔。每个月都不一样了?
答案 0 :(得分:0)
在这种情况下,一切都会顺利进行。当警报在第7天的14:00发出警报时,您可以为下一个第7天设置下一个警报
在这种情况下,只需添加一个检查来处理或不处理您需要在每个月的第7天14:00执行的逻辑
你可以使用重启事件,它可以工作。