마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

스레드 중지에 대해 질문드립니다. [closed]

0 추천

스레드와 핸들러에 대해 이번에 처음 공부하게 되었는데, 부딪쳐보다가 답답해서 질문해보려 합니다.

 

START 버튼과 STOP 버튼이 있어서 START 버튼을 누를 시 스레드가 계속 돌아가고, STOP을 누를 시 스레드를 멈춥니다.

startButton.setOnClickListener(new Button.OnClickListener() {
    @Override
    public void onClick(View v) {
        if(flag == false) {
            flag = true;
        } else {
            Randomizer.setDaemon(true);
            Randomizer.start();
        }
        startButton.setEnabled(false);
    }
});

stopButton.setOnClickListener(new Button.OnClickListener() {
        @Override
        public void onClick(View v) {
            flag = false;
            startButton.setEnabled(true);
        }
    });
}

START 버튼과 STOP 버튼에 대해서는 이렇게 구현했습니다. 스레드에 있는 flag 값을 이용해 스레드를 돌렸다 멈췄다 하는 방식입니다.

flag 가 true여서 스레드가 돌아가고 있는데 START 버튼을 한번 더 눌러 이미 돌아가고 있는 스레드를 또 시작하지 않게끔 버튼 비활성화를 걸었고, STOP버튼을 누를 시에 다시 START버튼을 활성화 할 수 있게끔 해놨습니다.

문제는 스레드가 돌아가고 있는 상태에서 뒤로가기 버튼을 눌렀을시 스레드를 멈출 수가 없습니다. setDaemon을 설정을 했는데... 다시 돌아와서 암만 STOP버튼을 누른들 스레드는 계속 돌아가네요.

이에 대한 해결방법이 궁금합니다.

 

 

질문을 종료한 이유: 자체 해결
구웨엑 (120 포인트) 님이 2016년 5월 22일 질문
구웨엑님이 2016년 5월 22일 closed
...