군침이 싹 도는 코딩
카운트 다운 타이머 ( CountDownTimer ) 사용법 본문
public class MainActivity extends AppCompatActivity {
TextView txtTimer;
TextView txtCount;
Button button;
CountDownTimer timer;
int count = 0 ;
// flag 역활을 하는 변수
boolean isFinished = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtTimer = findViewById(R.id.txtTimer);
txtCount = findViewById(R.id.txtCount);
button = findViewById(R.id.button);
timer = new CountDownTimer(10000,1000) {
@Override
public void onTick(long l) {
// 위에서 정한 인터벌이 될때마다 실행되는 함수
// 인터벌마다 무엇인가 실행하고 싶으면 여기에 코드 작성
// 위의 l 은 밀리 세컨즈이므로 초로 표시하려면
// l 을 1000으로 나눠준다
long remain = l/1000;
// 화면에 남은 시간을 보여준다
txtTimer.setText(""+remain+"초");
Log.i("TimerApp_Main",""+remain);
}
@Override
public void onFinish() {
// 타이머가 종료될때 실행되는 함수
// 종료될때 하고싶은 코드를 여기에 작성
Log.i("TimerApp_Main","타이머 종료");
isFinished = true;
showAlertDialog();
}
};
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 1. 타이머가 종료되었는지 확인
if (isFinished == true){
return;
}
count = count + 1;
txtCount.setText(""+count);
}
});
timer.start();
}
# 카운트다운 타이머의 사용법은 객체를 생성해준다
이때 파라미터가 필요하다 첫번째 파라미터는 몇초로 세팅할지 ( 밀리세컨드 )
두번째 파라미터는 인터벌 당 얼마나 시간이 흐르게 할지 ( 밀리세컨드 ) 이다
해당 예시에서는 10000 ( 10초 ) / 1000 ( 1초 ) 로 세팅되었다
그 뒤 onTick 에는 인터벌당 실행되는 함수로 인터벌당 동작을 써준다
onFinish 에는 타이머가 종료될때 실행되는 함수로 종료될때 실행시킬 동작을 써준다
마지막으로 timer.start 함수를 써야 실행이 된다
'Android' 카테고리의 다른 글
액티비티( Activity )간의 화면 전환 방법 ( Intent ) (1) | 2023.01.30 |
---|---|
액티비티 라이프 사이클 ( Activity Life cycle ) 의 주요 4개 함수 ( onCreate, onResume, onPause, onDestroy ) (0) | 2023.01.30 |
프로그레스바 ( progresbar ) 사용법 (0) | 2023.01.27 |
자바 문자열을 숫자로 바꾸는 법 (0) | 2023.01.27 |
Android Emulator System UI isn't responding 해결법 (0) | 2023.01.27 |