반응형
개요
이번에는 안드로이드 타이머 설정하는 방법에 대해서 알아보도록 하겠습니다.
설명
TimerTask timerTask; Timer timer = new Timer(); 를 이용해서 구해 보도록 하겠습니다.
코드
@Override
protected void onDestroy()
{
timer.cancel();
super.onDestroy();
}
private void startTimerTask()
{
stopTimerTask();
timerTask = new TimerTask()
{
int count = 300;
@Override
public void run()
{
count--;
txt_timer.post(new Runnable() {
@Override
public void run() {
txt_timer.setText(count + " 초");
}
});
}
};
timer.schedule(timerTask,0 ,1000);
}
private void stopTimerTask()
{
if(timerTask != null)
{
txt_timer.setText("300 초");
timerTask.cancel();
timerTask = null;
}
}
TimerTask timerTask;
Timer timer = new Timer();를 전역 변수로 선언하 신 다음에 작성해 주시면 됩니다. 그리고 버튼 온 클릭했을 때 이벤트를 발생시켜주시면
btn_start_timer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startTimerTask();
}
});
btn_stop_timer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopTimerTask();
txt_p1_add.setText("0");
txt_p1_pe.setText("0");
txt_p1_point.setText("0");
txt_p2_point.setText("0");
txt_p2_add.setText("0");
txt_p2_pe.setText("0");
}
});
이와 같이 사용해 주시면 됩니다!
코드2
위와 같이 해주셔도 되고 저는 이제 millisecond로 카운트다운을 주고 싶어서 새롭게 다시 수정해 봤습니다! ㅎㅎ
private void startTimerTask()
{
stopTimerTask();
timerTask = new TimerTask()
{
int minute = 5;
int seconds = minute *60;
int milliseconds = seconds*100;
// 1분에 60000밀리세컨드
// 1분에 60초
// 1초에 1000밀리세컨드
@Override
public void run()
{
milliseconds--;
final int seconds = (int) (milliseconds / 100) % 60 ;
final int minutes = (int) ((milliseconds / (100*60)) % 60);
final int tmillisecond = ((milliseconds)%100);
txt_timer.post(new Runnable() {
@Override
public void run() {
txt_timer.setText(minutes+":"+seconds+"."+tmillisecond);
}
});
}
};
timer.schedule(timerTask,0 ,10);
}
위와 같이 적어주시면 깔끔한 카운트다운타이머가 완성되었습니다!!
ps : schedule타이머를 1로 주고 싶으시면 Thread를 돌려 한번더 비동기화 시켜서 작업하시는게
부화를 이르키지 않습니다!
반응형
'안드로이드 > Andorid(안드로이드)' 카테고리의 다른 글
안드로이드 EditText InputFilter() 특정 글자만 입력받게 하기 (1) | 2019.12.18 |
---|---|
Android (안드로이드 Handler 사용) (1) | 2019.12.08 |
Android(안드로이드 Notification 알림) (0) | 2019.12.04 |
Android (안드로이드 xml 사이즈 layout_weight 조절) (0) | 2019.12.02 |
Android (안드로이드 타이틀바 ,상태바 제거) (0) | 2019.12.02 |