안드로이드 개발 질문/답변
(글 수 45,052)
//쓰레드
class MyThread extends Thread{
Boolean bRun;
public MyThread () {
bRun = true;
}
public void run(){
while(bRun){
try {
mHandler.sendEmptyMessage(0);
Thread.sleep(50);
} catch (Exception e) {
}
}
}
public void onStop() {
bRun = false;
}
public void onStart() {
bRun = true;
}
public boolean isRunning() {
return bRun;
}
}
bRun이 true인 동안 쓰레드가 반복되는 소스를 만들었습니다.
버튼을 클릭하면 isRunning으로 판별하여 bRun값을 스위칭 해줍니다.
onStop(); 함수가 실행되면 스레드가 잘 멈추는데
다시 버튼을 클릭해서 onStart();함수를 실행하면 다시 실행이 되질 않네요.
스레드를 다시 실행시키려면 어떡게 해야하나요.
쓰레드를 멈출때 위와같은방식으로 하는 것도 맞는건지요.




bRun이 false가 되면서 루프가 끝나버렸는데 다시 true해봐야 안돌아가는게 당연하죠;
while을 무한루프로 주고 안에다가 if를 넣어서 하시던지 위 코드처럼 while 끝내버리고 다시 호출하시던지 해야 합니다.