我需要在下一分钟开始时触发alarmManager的第一次运行。例如,如果当前时间是6:47:40秒,那么alarmManager的第一次运行将在6:48:00(即20秒后)触发
为了达到这个目的,我需要弄清楚当前一分钟剩余的剩余时间。这可以用这个来完成:
Calendar c = Calendar.getInstance();
int secondsTillNextMinute = 60 - c.get(Calendar.SECOND);
现在如何在alarmmanager.SetRepeating中使用此值?我的alarmManager看起来像这样。
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, System.currentTimeMillis(), 60000, createClockTickIntent(context));
private PendingIntent createClockTickIntent(Context context) {
Intent intent = new Intent(CLOCK_WIDGET_UPDATE);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
return pendingIntent;
}
我想在我的SetRepeating代码中使用secondsTillNextMinute
而不是System.currentTimeMillis()
。我怎么做?第二个参数只接受毫秒值?