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

핸들러 정지, 리셋 하는방법..

0 추천
타이머 핸들러를 만들었습니다. 헌데 정지와 리셋 기능을 만들어야하는데

앱을 끄지않는이상 도통 멈추질않네요

핸들러 멈추는 명령어로

timerHandler.removeCallbacksAndMessages(0);
timerHandler.removeMessages(0);

사용하려하는데 둘다 먹지않습니다.. ㅠㅠ
 

   문제의 코드인데요

 public Handler timerHandler = new Handler(){

        int intTimer = 0;
        String stringTimer= "00:00:00";

        public void handleMessage(Message msg)
        {
            intTimer++;
            stringTimer = String.format("%02d:%02d:%02d", intTimer / (60 * 60) , (intTimer/60)%60, (intTimer % 60));  // 시, 분, 초
            textView_timer.setText(stringTimer);
            timerHandler.sendEmptyMessageDelayed(0, 1000);
//            Log.w(TAG, "Method called on the UI thread", new Exception("STACK TRACE"));
        }
    };

재귀호출해서 그런건지..

아시는분 해당 핸들러 멈추는법 알려주세요 ㅠ

감사합니다.
R0R0 (2,610 포인트) 님이 2016년 11월 29일 질문

1개의 답변

+1 추천

안녕하세요

핸들러 종료하는게 작성해주신 내용이 맞습니다.

timerHandler.removeMessages(0); 

소스 수정했습니다. 수고하세요!

 public Handler timerHandler = new Handler(){

        int intTimer = 0;
        String stringTimer= "00:00:00";

        public void handleMessage(Message msg)
        {
            intTimer++;
            stringTimer = String.format("%02d:%02d:%02d", intTimer / (60 * 60) , (intTimer/60)%60, (intTimer % 60));  // 시, 분, 초
            textView_timer.setText(stringTimer);
            // timerHandler.sendEmptyMessageDelayed(0, 1000);  밑으로 뺌
//            Log.w(TAG, "Method called on the UI thread", new Exception("STACK TRACE"));
        }
    };
timerHandler.sendEmptyMessageDelayed(0, 1000);  // 이부분 있어야함

 

 

히로시 (10,800 포인트) 님이 2016년 11월 29일 답변
밑으로 빼니 sendEmptyMessageDelayed를 인식 못하는데.. 뭐 추가해줘야하나요?
...