Ich habe eine Methode, die jede Minute ausgeführt werden muss, aber ich muss diesen Thread genau 00 Sekunden pro Minute (auf der Uhr) starten, wie es den Bildschirm aktualisiert basierend auf der Zeit.Start Handler Thread bei Null Sekunden
Mein Handler-Code ist hier:
//update bottom card every minute
private final static int INTERVAL = 1000 * 60; //1 minute
Handler mHandler = new Handler();
Runnable mHandlerTask = new Runnable()
{
@Override
public void run() {
updateBottomCard();
mHandler.postDelayed(mHandlerTask, INTERVAL);
}
};
public void startRepeatingTask(ArrayList<Meeting> meetingsOfToday)
{
this.meetingsOfToday = meetingsOfToday;
mHandlerTask.run();
}
In der Haupttätigkeit ich einen Anruf wie diese:
BottomCardController.getInstance(this).startRepeatingTask(meetingsSorted.get(TODAY_INDEX));
jedoch dieser Aufruf geschieht zufällig Zeitpunkt, zum Beispiel nicht um 14:12:00 - sondern um 14:12:41 statt, und ich brauche es genau um 14:12:00 (hh: mm: ss) zu starten. Kann mir jemand dabei helfen?
Vielleicht ein Beispiel, aber insgesamt scheint dies die Lösung. – zgc7009
@ zgc7009 Beispiel würde bedeuten, Mathematik lol ... – Shmuel
Ihre Antwort stellt Funktionalität in Java/Android, die nicht einmal in der Frage angezeigt wurde. Ein Beispiel dafür, wie Sie tatsächlich die Zeit bis zur nächsten Minute bekommen und die Verzögerung erzeugen können, wäre eine vollständige Antwort. Und ja ... es würde etwas Mathe erfordern. – zgc7009