0

私のアプリには、処理する非常に単純なオブジェクト メッセージ (パイプライン アーキテクチャ) 用のwhile-on-volatile-booleanループとs を持つスレッドがほとんどありません。BlockingQueue

最近android.os.Looper、同じ仕事をしているように見える友人とのクラスに遭遇しましたが、それらはAPIに配置されているため、明示的なキューを使用した手書きのループの代わりにそれらを使用する利点(特にパフォーマンス)はありますか? それとも、ある種の「APIシュガー」ですか?

4

1 に答える 1

2

ALooperは、メッセージがポストされるまで待機する通常の Java スレッドです。クラスとクラスLooperで使用されます。ハンドラはルーパー スレッドにメッセージを投稿します。ルーパー スレッドはスレッドを維持し、ハンドラーによって投稿されたメッセージをループします。 HandlerMessage

パフォーマンスに関しては、私が知る限り利点はありません。スレッドを維持し、それらのスレッドにメッセージを投稿するだけです。API の観点からは、Handler を使用する方が簡単かもしれません。同じルーパーを共有する複数のハンドラーを作成できます。スレッドセーフな方法で Looper に投稿してもらいます。のような便利なタイミング メッセージもありますHandler#postDelayed。したがって、心配するコードが少なくなります。

欠点は、それらが Android のみの API であるため、その環境に制限されることです。

于 2017-01-12T22:40:53.913 に答える