Ich habe eine TextView, wo ich eine Nachricht nach Uhrzeit (Stunde des Tages) einstellen möchte. Um dies zu erreichen Ich bin using-Zeige Nachricht nach Zeit
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();
wo update (Stunde) verwendet wird, um die Nachricht zu aktualisieren.
Dies funktioniert gut, jedoch wird die Aktualisierung abhängig von der Startzeit durchgeführt. Zum Beispiel sollte die Nachricht um 20:00 Uhr aktualisiert werden. Wenn die App jedoch um 19:59 Uhr gestartet wird, findet die Aktualisierung um 20:59 Uhr statt.
Wenn ich Thread.sleep(1000)
verwende, funktioniert es wie erwartet. Aber ich habe das Gefühl, Ressourcen zu verschwenden, indem ich den Thread jede Sekunde durchführe, nur um nach einer 1-stündigen Veranstaltung zu suchen. Gibt es einen besseren Weg, dies zu tun?