0

안드로이드 프로젝트에서 Handler를 사용하여 main/ui 스레드에 대한 콜백을 제공합니다.안드로이드 프로젝트의 핸들러 : Thread Safe

 if (mHandler == null) { 
      mHandler = new Handler(Looper.getMainLooper()); 
     } 
     mHandler.post(new Runnable() { 
      public void run() { 
       freeBeePlaybackEventListener.onError(freeBeeError); 
      } 
     }); 

핸들러 개체 즉 mHandler를 만들 때 처리기가 이미 있는지 여부를 확인합니다. 그렇지 않다면, 핸들러를 생성하고 있습니다. 즉, 싱글 톤 패턴을 사용하고 있습니다. 내 질문은 : 처리기 개체 스레드의 생성 안전 한가?

감사합니다.

답변

0

핸들은 스레드 안전합니다.

작업자 스레드와의보다 복잡한 상호 작용을 처리하려면 작업자 스레드에서 처리기를 사용하여 UI 스레드에서 전달 된 메시지를 처리하는 것이 좋습니다. (DOC-Worker Threads)

일반적으로 새 스레드에 대한 처리기를 만들지 만 기존 스레드에 연결된 처리기를 만들 수도 있습니다. 핸들러를 UI 스레드에 연결할 때 메시지를 처리하는 코드는 UI 스레드에서 실행됩니다 (Android Documetation)