从我与alarmmanager的试验中我发现它并没有处理setrepeating内部的大日值。那么每30/60/90天发送一次通知的最佳方法是什么?有没有办法用alarmmanager做到这一点,还是我需要使用不同的方法?
答案 0 :(得分:0)
使用alarm manager
并将您的通知发送到NotifyService
课程
Intent myIntent = new Intent(Current.this , NotifyService.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
pendingIntent = PendingIntent.getService(ThisApp.this, 0, myIntent, 0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 12);
calendar.set(Calendar.MINUTE, 00);
calendar.set(Calendar.SECOND, 00);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 24*60*60*1000 , pendingIntent); //set repeating every 24 hours
答案 1 :(得分:0)
根据您的需要,您只需要一个特定的重复间隔,例如
60 days = 60*24*60*60*1000 (time in millis)
另外,要记住一件重要的事情。因为你试图为这么长的重复间隔设置闹钟,因为android很自然地会关闭或重启设备。在这种情况下,Alarmanager会清除设备重启前设置的所有警报,因此您需要检测设备何时重启并再次设置所有必需的警报。
RobinF已经发布了设置闹钟的代码,你可以参考。
答案 2 :(得分:0)
尝试等待警告管理员的意图,并将时间传递为1 * 24 * 60 * 60 * 1000(1天的时间)