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

Bad*_*dal 4 java android handler

我想延迟发布到时钟的分钟变化.目前我正在使用这个

handler.postDelayed(drawRunner, 60000);
Run Code Online (Sandbox Code Playgroud)

但这个延迟从现在开始60秒.我想要做的是延迟帖子直到时钟的微小变化.

例如:让我说在我的手机上的时间4:15:29比我想要延迟它直到时间4:16:00然后下一个是4:17:00等等.

无论如何要做到这一点?

Bal*_*des 5

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

long time = System.currentTimeMillis();
Run Code Online (Sandbox Code Playgroud)

完成之后,您可以通过以下方式获得第二部分:

int seconds = new Date(time).getSeconds();
Run Code Online (Sandbox Code Playgroud)

然后你可以从60减去它,并获得睡眠时间.

int sleepSecs = 60 - seconds;
Run Code Online (Sandbox Code Playgroud)

然后将其设置为睡眠时间 handler.postDelayed()

handler.postDelayed(drawRunner, sleepSecs*1000);
Run Code Online (Sandbox Code Playgroud)

在您第一次使用它之后,您可以使用恒定的60000毫秒睡眠时间.

请注意,getSeconds()可以返回60或61作为第二个值!文档