我有一个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小时的事件而浪费资源。有没有更好的方法来做到这一点?