2012-08-29 145 views
4

我想延迟发布,直到时钟的分钟更改。 目前,我现在用这个android handler .postdelay()每次每分钟更改一次?

handler.postDelayed(drawRunner, 60000); 

但这种延迟立柱60秒钟的时间。 我想要做的是 延迟这个帖子,直到时钟上的分钟变化。

例如:可以说,时间在我的手机是4:15:29比我不想耽误它,直到时间4:16:00再接下来是4:17:00等。

有无论如何做到这一点?

回答

4

您可以通过访问当前时间:

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

+0

完美地工作。谢谢 – Badal

+1

你知道我该如何改变这个postDelayed时间再次,如假设我已经设置了4000ms秒,现在2000ms通过,现在我想设置新的间隔时间,应该是7000ms,我该怎么办?你知道吗 ? – Drim

0

是的,你可以使用this定时器类以这种方式安排定期任务,你可以根据需要在任何时间段更改你的时钟时间。