0

私はアンドロイドプロジェクトでハンドラーを使用して、メイン/ 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)で実行されます

関連する問題