Android-обработчик .postdelay () каждое изменение минут на часах?

Я хочу отложить публикацию до изменения минут на часах. в настоящее время я использую это

handler.postDelayed(drawRunner, 60000);

но эта задержка поста 60 секунд с момента прямо сейчас. что я хочу сделать, так это отложить публикацию до минутного изменения на часах.

например: допустим, что время на моем телефоне 4:15:29, чем я хочу отложить до времени 4:16:00, а затем следующее - 4:17:00 и так далее.

Есть какой-либо способ сделать это??


person Badal    schedule 29.08.2012    source источник


Ответы (2)


Вы можете узнать текущее время:

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 в качестве второго значения! Документация

person Balázs Édes    schedule 29.08.2012
comment
Вы знаете, как я могу изменить это postDelayed time на еще раз, например, предположим, что я установил 4000 мсек, а теперь проходит 2000 мс, теперь я хочу установить новый интервал времени, как будто он должен быть 7000 мс, как я могу это сделать? ты знаешь ? - person Drim; 06.05.2016

Да, вы можете использовать этот класс Timer для планирования периодической задачи. Таким образом, вы можете изменить время на часах в любом период времени, как вам нужно.

person IamStalker    schedule 29.08.2012