android处理程序.postdelayed()每次分钟更改时钟?

时间:2012-08-29 08:06:59

标签: java android handler

我想延迟发布到时钟的分钟更改。 目前我正在使用这个

handler.postDelayed(drawRunner, 60000);

但这个延迟从现在开始60秒。 我想做的是 把时间延迟到时钟上的分钟变化。

例如:让我说我的手机上的时间为4:15:29,而不是我希望延迟时间4:16:00,然后下一个是4:17:00等等。

无论如何都要这样做?

2 个答案:

答案 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类来安排定期任务,这样您可以根据需要在任何时间段内更改时钟时间。