Yas*_*rag 4 android alarm alarmmanager
我尝试使用警报管理器在每天的特定时间运行警报.我正在使用此代码
Intent intent = new Intent(AlarmSettings.this, AlarmService.class);
intent.putExtra("i", i);
PendingIntent mAlarmSender = PendingIntent.getService(AlarmSettings.this, Id, intent, 0);
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),Calendar.getInstance().getTimeInMillis()+(24*60*60*1000), mAlarmSender);}
Run Code Online (Sandbox Code Playgroud)
问题是,如果cal.getTimeInMillis()值在过去警报立即运行,我不知道为什么,并且当cal.getTimeInMillis()值在将来它正在运行时.
我需要让它在每天的特定时间运行.
// every day at 9 am
Calendar calendar = Calendar.getInstance();
// if it's after or equal 9 am schedule for next day
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) >= 9) {
calendar.add(Calendar.DAY_OF_YEAR, 1); // add, not set!
}
calendar.set(Calendar.HOUR_OF_DAY, 9);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setInexactRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
AlarmManager.INTERVAL_DAY, pi);
// alarmManager.setRepeating(AlarmManager.RTC, calendar.getTimeInMillis(),
// AlarmManager.INTERVAL_DAY, pi);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5535 次 |
| 最近记录: |