Android
카운트 다운 타이머
수색…
매개 변수
매개 변수 | 세부 |
---|---|
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