Android
Countdown Timer
Zoeken…
parameters
Parameter | Details |
---|---|
long millisInFuture | De totale duur van de timer, oftewel hoelang je in de toekomst wilt dat de timer afloopt. In milliseconden. |
long countDownInterval | Het interval waarmee u timer-updates wilt ontvangen. In milliseconden. |
long millisUntilFinished | Een parameter in onTick() die onTick() hoe lang de CountDownTimer nog onTick() . In milliseconden |
Opmerkingen
CountDownTimer is een vrij slanke klasse - het doet één ding heel goed. Omdat u alleen een CountDownTimer kunt starten / annuleren, moet u de pauze- / hervattingsfunctionaliteit implementeren zoals weergegeven in het tweede voorbeeld. Gebruik het object Timer voor complexere functionaliteit of om een timer op te geven die voor onbepaalde tijd moet worden uitgevoerd.
Een eenvoudige afteltimer maken
CountDownTimer is handig voor het herhaaldelijk uitvoeren van een actie in een vast interval gedurende een ingestelde duur. In dit voorbeeld werken we elke seconde gedurende 30 seconden een tekstweergave bij met informatie over de resterende tijd. Wanneer de timer is afgelopen, stellen we de TextView in op "Gereed".
TextView textView = (TextView)findViewById(R.id.text_view);
CountDownTimer countDownTimer = new CountDownTimer(30000, 1000) {
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
}
public void onFinish() {
textView.setText("Done.");
}
}.start();
Een meer complex voorbeeld
In dit voorbeeld pauzeren / hervatten we de CountDownTimer op basis van de activiteitenlevenscyclus.
private static final long TIMER_DURATION = 60000L;
private static final long TIMER_INTERVAL = 1000L;
private CountDownTimer mCountDownTimer;
private TextView textView;
private long mTimeRemaining;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView)findViewById(R.id.text_view); // Define in xml layout.
mCountDownTimer = new CountDownTimer(TIMER_DURATION, TIMER_INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
mTimeRemaining = millisUntilFinished; // Saving timeRemaining in Activity for pause/resume of CountDownTimer.
}
@Override
public void onFinish() {
textView.setText("Done.");
}
}.start();
}
@Override
protected void onResume() {
super.onResume();
if (mCountDownTimer == null) { // Timer was paused, re-create with saved time.
mCountDownTimer = new CountDownTimer(timeRemaining, INTERVAL) {
@Override
public void onTick(long millisUntilFinished) {
textView.setText(String.format(Locale.getDefault(), "%d sec.", millisUntilFinished / 1000L));
timeRemaining = millisUntilFinished;
}
@Override
public void onFinish() {
textView.setText("Done.");
}
}.start();
}
}
@Override
protected void onPause() {
super.onPause();
mCountDownTimer.cancel();
mCountDownTimer = null;
}