我想有一个安卓警报管理器在每个月的第一天运行服务。我有以下代码:
PersianCalendar persianCalendar = new PersianCalendar();
persianCalendar.setTimeZone(TimeZone.getDefault());
if( persianCalendar.getPersianDay()==1){
Intent intent = new Intent(UsersActivity.this, AppsNetUsageReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this.getApplicationContext(), 0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, persianCalendar.getTimeInMillis(), pendingIntent);
}
如果设备关闭或其他原因阻止我的服务正常工作,如何保证我的服务成功运行?
收到上一个警报时,您必须设置下一个警报。
AlarmManager中setRepeating(@AlarmType int type, long triggerAtMillis,long intervalMillis, PendingIntent operation)
一种方法可用于设置重复警报,例如每小时或每15分钟一次。
但在这种情况下,您无法提供intervalMillis
因为间隔可能会因月份中的天数不同而有所不同。
正如@Ya Si所说,除了自动处理断电/重启情况的AlarmManager之外,还有其他方法可以设置警报。 如果您仍想使用警报管理器,请检查:如果设备重新启动,请启动警报管理器