Android每30天发送一次通知?

时间:2014-09-18 16:34:44

标签: java android alarmmanager

从我与alarmmanager的试验中我发现它并没有处理setrepeating内部的大日值。那么每30/60/90天发送一次通知的最佳方法是什么?有没有办法用alarmmanager做到这一点,还是我需要使用不同的方法?

3 个答案:

答案 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

See this for more information

答案 1 :(得分:0)

根据您的需要,您只需要一个特定的重复间隔,例如

60 days = 60*24*60*60*1000 (time in millis)

另外,要记住一件重要的事情。因为你试图为这么长的重复间隔设置闹钟,因为android很自然地会关闭或重启设备。在这种情况下,Alarmanager会清除设备重启前设置的所有警报,因此您需要检测设备何时重启并再次设置所有必需的警报。

RobinF已经发布了设置闹钟的代码,你可以参考。

答案 2 :(得分:0)

尝试等待警告管理员的意图,并将时间传递为​​1 * 24 * 60 * 60 * 1000(1天的时间)