Starten Sie den Countdown-Timer mit neuen Zeit android
Ich soll neu starten, countdown-timer mit der neuen Zeit, wenn countdown beendet ist. Ich gebe folgenden code:
futureInMillis = newTime();
CountDownTimer remainingTimeCounter = new CountDownTimer(futureInMillis, 1000) {
public void onTick(long millisUntilFinished) {
remainingTime = calculateRemainingTime(millisUntilFinished / 1000);
runOnUiThread(updateTime);
}
public void onFinish() {
//TODO: restart counter
cancel();
futureInMillis = newTime();
// remainingTimeCounter = null;
this.start();
}
}.start();
was ist das problem? haben Sie eine Frage?
ich will neu starten, countdownTimer, wenn gegen onFinish() aufgerufen. Dieser code timer neu starten, aber nicht ändern die Zeit.
ich will neu starten, countdownTimer, wenn gegen onFinish() aufgerufen. Dieser code timer neu starten, aber nicht ändern die Zeit.
InformationsquelleAutor Nuraiz | 2012-06-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollten wir wissen, was die
newTime()
tun , und Sie don ' T haben, rufen Sie die Methodecancel()
, weil der timer ist in deronFinish()
- Methode , das bedeutet, dass der timer fertig ist, herunter zu zählen :EDIT :
gibt es kein attribut in der Klasse
CountDownTimer
um zu verwenden, um ändern Sie die futureInMillis ,wenn Sie verwenden möchten , sollten Sie die Verwendung von zwei
CountDownTimer
; erstellen Sie zwei Klassen , jede Klasse hat einen timer und ein attribut von futureInMillis , und dann, wenn der timer für die erste Klasse fertig, instantiieren die zweite Klasse , übergeben die futureInMillis, um es , und starten Sie den timer, und Umgekehrt .Oder Bearbeiten Sie einfach die code source der Klasse CountDownTimer aus dem source-code von android-und add-setter und Getter für die Attribute futureInMillis wie diese :
dann können Sie ändern Sie die millisInFuture einfach so :
fügen Sie Ihren code für Ihre Klasse newTime() , so dass wir verstehen können, was sollten wir tun, um es Arbeit 🙂
Perfekte Lösung..!
InformationsquelleAutor Houcine