我想延迟发布到时钟的分钟更改。 目前我正在使用这个
handler.postDelayed(drawRunner, 60000);
但这个延迟从现在开始60秒。 我想做的是 把时间延迟到时钟上的分钟变化。
例如:让我说我的手机上的时间为4:15:29
,而不是我希望延迟时间4:16:00
,然后下一个是4:17:00
等等。
无论如何都要这样做?
答案 0 :(得分:5)
您可以通过以下方式访问当前时间:
long time = System.currentTimeMillis();
完成后,您可以通过以下方式获取第二部分:
int seconds = new Date(time).getSeconds();
然后你可以从60减去它,并获得睡眠时间。
int sleepSecs = 60 - seconds;
然后将其设置为睡眠时间handler.postDelayed()
handler.postDelayed(drawRunner, sleepSecs*1000);
第一次使用此功能后,您可以使用恒定的60000毫秒睡眠时间。
请注意,getSeconds()可以返回60或61作为第二个值! Documentation 强>
答案 1 :(得分:0)
是的,您可以使用this Timer类来安排定期任务,这样您可以根据需要在任何时间段内更改时钟时间。