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

메시지핸들러 초보 질문드립니다

0 추천
final Handler handler = new Handler() {

   @Override
   public void handleMessage(Message msg) {

    runtime.setText(timestart / 3600 + "시간" + (timestart % 3600) / 60 + "분" + timestart % 60 + "초");

   }
  };
  Runnable task = new Runnable() {
   public void run() {
    while (true) {

     try {
      Thread.sleep(1000);

     } catch (InterruptedException e) {
     }

     ++timestart;

     Message message = Message.obtain();
     message.what = 2;
     handler.sendMessage(message);
    }
   }
  };
  thread = new Thread(task);
  thread.start();

카운트다운으로 1초씩 올라가는 핸들러를 했는데

 

반대로 멈추게 하는 함수는 어떻게 해줘야되나여?

익명사용자 님이 2015년 8월 25일 질문

1개의 답변

0 추천

핸들러 사용법이 아니라 Thread 종료 법인듯 한데요..^^;;

내부 변수를 줘서, stopThread 같은 걸 호출 할 때 Thread를 종료 하게 해주시면 됩니다.

 

  Runnable task = new Runnable() {
   private boolean mRun = true;
   public void stopThread()
   {
      mRun = false;
   }
 
   public void run() {
    while (mRun) {
 
     try {
      Thread.sleep(1000);
 
     } catch (InterruptedException e) {
     }
 
     ++timestart;
 
     Message message = Message.obtain();
     message.what = 2;
     handler.sendMessage(message);
    }
   }
  };
익명사용자 님이 2015년 8월 26일 답변
2015년 8월 26일 수정
...