저번 안드로이드 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();
를 추가하면 된다.
그러면 동영상에서 후반부 동작을 하게된다.
'소프트웨어 > Android/Java/Ndk' 카테고리의 다른 글
Cygwin 깔기 (0) | 2013.07.02 |
---|---|
NDK 환경변수 설정 (0) | 2013.07.02 |
ERROR] java was started but returned exit code=13 (0) | 2013.07.02 |
안드로이드 Timer 사용1 (Timer, timerTask) (0) | 2013.05.28 |
안드로이드 txt파일 읽기(InputStream과 ArrayList,그리고 BufferedReader) (0) | 2013.05.27 |
안드로이드 새로운 창 띄우기(안드로이드 intent) (0) | 2013.05.22 |
안드로이드 thread 생성(onCreate함수에서 txt읽기) (0) | 2013.05.22 |