У меня есть TextView, где я хочу установить сообщение в соответствии со временем (час дня). Для этого я использую:Показать сообщение По TIme
Thread t2 = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(3600000);
handler.post(new Runnable() {
@Override
public void run() {
int hour=Calendar.getInstance().get(Calendar.HOUR_OF_DAY);
update(hour);
}
});
}
} catch (InterruptedException e) {
}
}
};
t2.start();
, где обновление (час) используется для обновления сообщения.
Это прекрасно работает, однако обновление выполняется в зависимости от времени запуска. Например, сообщение должно обновляться в 20:00. Но если приложение запускается в 19:59, обновление происходит в 20:59.
Если я использую Thread.sleep(1000)
, он работает так, как ожидалось. Но я чувствую, что трачу ресурс, запуская поток каждую секунду, чтобы посмотреть событие в течение 1 часа. Есть ли лучший способ сделать это?