如何将警报管理器设置为每月的第一天运行?



我想有一个安卓警报管理器在每个月的第一天运行服务。我有以下代码:

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之外,还有其他方法可以设置警报。 如果您仍想使用警报管理器,请检查:如果设备重新启动,请启动警报管理器

最新更新