2014-09-18 79 views
1

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

回答

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

0

所有你需要的是一个特定的重复间隔根据自己的需要,像

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

另外,一个重要的要记住的事情。正如你试图设置闹钟这么长的重复时间间隔,使用android它的自然设备将会关闭或重新启动。在这种情况下,Alarmanager会清除设备重新启动前设置的所有警报,因此您需要检测设备何时重新引导并再次设置所有必需的警报。

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

0

试用待定报警管理器的意图和传递时间为1 * 24 * 60 * 60 * 1000(时间为1天)