1. ホーム
  2. android

[解決済み] AndroidにおけるLooper、Handler、MessageQueueの関係とは?

2022-11-20 20:46:11

質問

Androidの公式ドキュメント/ガイドを確認したところ Looper , HandlerMessageQueue . しかし、私はそれを得ることができませんでした。私はアンドロイドの初心者で、これらの概念で非常に混乱しました。

どのように解決するのですか?

A Looper はメッセージ処理ループです。 MessageQueue . は Looper クラスは通常 HandlerThread (のサブクラス)。 Thread ).

A Handler との対話を容易にするユーティリティクラスです。 Looper -主にメッセージの投稿と Runnable オブジェクトをスレッドの MessageQueue . を指定すると Handler が作成されると、それは特定の Looper (および関連するスレッドとメッセージキュー)にバインドされます。

典型的な使用法では HandlerThread を作成し、次に Handler オブジェクトを作成し、それによって他のスレッドが HandlerThread インスタンスと対話することができます。このオブジェクトは Handler を実行中に作成する必要があります。 HandlerThread を使用できるスレッドに制限はありませんが、一旦作成された後は Handler のスケジューリングメソッド ( post(Runnable) など)

Androidアプリケーションのメインスレッド(通称:UIスレッド)は、アプリケーションのインスタンスが生成される前にハンドラースレッドとして設定されます。

クラス ドキュメントとは別に、これらすべてに関する素晴らしい議論があります。 ここで .

追伸:上記のクラスはすべてパッケージの android.os .