안드로이드 Timer 사용2 (Timer, timerTask)
저번 안드로이드 Timer 사용1 (Timer, timerTask)에서는 timer를 죽이지 않고 그냥 progressbar만 초기화 하였다.
이번에는 timer를 완전히 stop시키는 방법으로 진행을 해보겠다.
단순하게 앞 강의의 소스에
public void stopTimer(){
if(timerTask != null){
timerTask.cancel(); //타이머task를 timer 큐에서 지워버린다
timerTask=null;
}
if(timer!=null){
timer.cancel(); //스케쥴task과 타이머를 취소한다.
timer.purge(); //task큐의 모든 task를 제거한다.
timer=null;
}
}
를 추가해주면 된다. 각 매서드의 용법은 주석으로 달아놨다.
그리고
public void decreaseBar(){
runOnUiThread(
new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int currprog=prog.getProgress();
Log.d("mstag", currprog+"");
if(currprog>0){
currprog=currprog-1;
prog.setProgress(currprog);
}else if(currprog==0){
//currprog=6;
stopTimer();
}
//Log.d("mstag",""+timerTask.scheduledExecutionTime());
}
}
);
}
원래 소스에서 progbar가 0이됬을때 단순하게 다시 progbar만 6으로 돌렸는데 이부분을 지우고 맨 위에 새로 추가한 소스를 불러주면 된다.
이렇게되면 동영상에서 처음 동작하는 화면이 동작한다. 단순하고 감소카운트를 수행하고 타이머가 끝난다.
만약 1강의에서와 같이 계속해서 반복되는 동작을 원한다면
빨간색밑줄밑에
강의1에서 만들어 놓은
initProg();
startTimerThread();
를 추가하면 된다.
그러면 동영상에서 후반부 동작을 하게된다.