Android 如何在特定持续时间后触发alarmManager的初始运行?

Android 如何在特定持续时间后触发alarmManager的初始运行?,android,Android,我需要在下一分钟开始时触发alarmManager的第一次运行。例如,如果当前时间为6:47:40秒,则alarmManager的第一次运行将在6:48:00即20秒后触发 为了实现这一点,我需要计算出当前分钟还剩多少秒才能完成。这可以通过以下方式完成: Calendar c = Calendar.getInstance(); int secondsTillNextMinute = 60 - c.get(Calendar.SECOND); 现在如何在alarmmanager.SetRepea

我需要在下一分钟开始时触发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) 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。我该怎么做?第二个参数在下一分钟开始时只接受毫秒值?

。。。那么,为什么要计算到00的秒数呢?如果当前分钟为47:xy,则下一分钟为48:00。简单地说,不考虑秒数广告,只需将1添加到当前分钟。Hi Der Golem,当用户在主屏幕中添加小部件后分钟值发生变化时,我需要触发一些操作。精确地说,分钟值变化意味着在分钟+1:00时,实际上用户可以在10:12:30秒(即30秒)添加小部件,直到下一分钟,或者在10:12:45秒15秒到下一分钟,所以我永远不知道触发操作之前需要等待多少秒,所以我需要在运行时让它决定。这是一个秒表小部件,因此需要每秒进动。当然,你还必须计算小时数。在这种情况下,您必须知道小时是否保持不变,或者它是否会改变。下一分钟为0时,它将改变,因此只需将1添加到小时。小时必须乘以60000,并加在下一分钟。