私は、時間(時間)に応じてメッセージを設定する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時間のイベントを探すために毎秒スレッドを実行してリソースを無駄にしているように感じます。これを行うための良い方法はありますか?