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;
}


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow