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

쓰레드에서 overlay를 일정시간마다 하면 깜빡거리는데 없애는법 있을까요?

0 추천

이곳에서 정말 많은 정보를 얻어가고 배워갔습니다.

답변을 해주신 모든 분들께 감사드립니다! 

이제 완성에 다다랐고 몇몇버그만 고치는 일만 남았습니다. ㅎㅎ

마지막 질문이 되지않을까 싶습니다.

Thread overlaythread = new Thread(){
    public void run() {
        while(true) {
            mHandler.post(new Runnable() {
                @Override
                public void run() {
                    autoset = pref.getValue("autoset", false);
                    if(autoset) {
                        currentBrightness();
                        calcAlpha();
                        if(widgetset) {
                            AlarmHandler.sendEmptyMessage(0);
                            mRunning = true;
                        }
                        if(!widgetset){
                            AlarmHandler.sendEmptyMessage(1);
                            mRunning = false;
                        }
                    }
                    else{
                        AlarmHandler.sendEmptyMessage(1);
                        mRunning = false;
                        stopSelf();
                    }
                }
            });
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }

currentBrigtness()는 현재 화면의 밝기값을 가져오는 함수를 정의했고

calcAlpha()는 투명도를 정하는 함수를 정의했습니다.

그리고 try에서 Thread.sleep(5000)으로 5초마다 실행되게 했는데 

그때마다 화면이 풀려서 원래 화면나오고 다시금 overlay가 적용되는

깜빡깜빡하는 현상이 나오는데 어떻게 해야 없앨수 있을까요?

Bateaux (5,200 포인트) 님이 2015년 10월 31일 질문

1개의 답변

0 추천
OverlayThread는 TimerTask등으로 바꾸는 것이 좋지 않을까요? Thread의 sleep으로 해결하는 것은 좋지 않습니다.
mcsong (44,040 포인트) 님이 2015년 10월 31일 답변
TimerTask는 생각을 해보지 않았는데 자세히 알아보고 적용하겠습니다!
변경해서 적용해보았는데 깜빡이는게 없이 잘 적용됩니다 ㅎㅎ
조언 감사드립니다~
...