안드로이드 개발 질문/답변
(글 수 45,052)
nextBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
flag = false;
thread.interrupt();
currentCount = 0;
currentNum++;
if(currentNum>patternOrganizationArr.size()){
if(flag){
showDialog(2);
}else{
showDialog(1);
}
}else{
PlayMethod();
//flag = true;
Worker();
}
}
});
public void Worker(){
flag = true;
thread = new Thread(){
public void run(){
while(flag){
try{
Thread.sleep(1500);
}catch(Exception e){
e.printStackTrace();
}
handler.post(new Runnable() {
public void run() {
if(flag){
// TODO Auto-generated method stub
PlayMethod(); // 요놈이 thread가 종료되면 실행이 안되야는데,,,,
}
}
});
}
}
};
thread.start();
}
nextBtn을 클릭하면 flag값을 false로 바꾸고 thread를 inturrupt해서 thread를 종료 시키고
다시 Worker메소드를 실행시켜 화면을 플레이 시키게끔 했습니다.
그런데,, 제 생각대로라면,, PlayMethod()가 thread가 종료가 되면 실행되지 말아야 하는데
가끔,, (거의 반이 그런듯,,) PlayMethod가 한번 실행되고 종료가 되는거 같아요,,,
ㅜ.ㅜ 이리저리 해봐서 저렇게 로직이 나왔는데,,, 아,, 힘드네요 ㅎㅎㅎ
도움좀 로직 보시고 어디가 문젠지 콕 찝어주세요!!!




자답해용 ㅜ.ㅜ
원론적인 문제는 모르겠구요,,
클릭했을때 타이머를 써서 Worker가 다시실행되는걸 조금 늦춰서 해결했습니다~