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

스레드에 관련해서 질문드립니다.

0 추천
if(isScreenOn)
        {

            Log.e("MainActivity", "isScreen On");
            count+=1;
            t=true;
            Thread myThread=new Thread(new Runnable() {
            public void run() {
                while(t){
                    try{
                        handler.sendMessage(handler.obtainMessage());
                        Thread.sleep(2000);
                    }catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    }
            }
        });
            myThread.start();
        }
        else
        {
            Log.e("MainActivity", "isScreen Off");
            t=false;

        }

스크린이 켜졌을때 타이머가 돌고 스크린이 꺼졌을때 타이머가 돌지 않게 하고 다시 켜지면 돌게 하고 싶은데 현재 이렇게 주니 스크린이 꺼져있을때도 계속 타이머가 돌고 있습니다. ㅠㅠ 어디에서 문제가 있는걸까요? 로그로 봤을때는 스크린이 켜지면 켜진다고 꺼지면 꺼진다고 되있는데..
dkdpdwmf0 (200 포인트) 님이 2015년 9월 18일 질문

1개의 답변

0 추천
일단 로직이 이상합니다.

스크린 온 될때마다 새로운 스레드를 만드는데 원하시는 기능이 구현될리가 없지요.
익명사용자 님이 2015년 9월 18일 답변
계속 책보면서 찾고 있는데 이해가 안되서요.. 어떤 방식으로 구현해야지 될까요...
위에서 답변을 주셨는데;;;
스레드밖으로 빼시고 t 변수를 isScreenOn으로 교체하세요
...