수색…


매개 변수

매개 변수 세부
long millisInFuture 타이머가 실행될 총 지속 시간입니다 (예 : 미래의 어느 정도까지 타이머를 끝내기를 원하십니까). 밀리 초 단위.
long countDownInterval 타이머 업데이트를 받으려는 간격. 밀리 초 단위.
long millisUntilFinished onTick() 남은 시간을 알려주는 onTick() 제공된 매개 변수입니다. 밀리 초 단위

비고

CountDownTimer는 꽤 희박한 클래스입니다. CountDownTimer 만 시작 / 취소 할 수 있으므로 두 번째 예제와 같이 일시 중지 / 다시 시작 기능을 구현해야합니다. 좀 더 복잡한 기능을 사용하거나 무기한으로 실행해야하는 타이머를 지정하려면 Timer 개체를 사용하십시오.

간단한 카운트 다운 타이머 만들기

CountDownTimer는 설정된 지속 시간 동안 일정한 간격으로 반복적으로 작업을 수행 할 때 유용합니다. 이 예에서는 30 초 동안 매초마다 텍스트보기를 업데이트하여 남은 시간을 알려줍니다. 그런 다음 타이머가 끝나면 TextView를 "완료"라고 설정합니다.

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();

보다 복잡한 예제

이 예제에서는 Activity 라이프 사이클을 기반으로 CountDownTimer를 일시 중지 / 다시 시작합니다.

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
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow