0

我在一個android項目中使用Handler來給主/ UI線程回調。Android項目中的處理程序:線程安全

 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