HandlerThread thread = new HandlerThread("DownloadService");
thread.start();
スレッドに関連付けられたルーパーは、thread.start() が返された直後にメッセージ キューにメッセージが到着するのを待っていますか? その場合は、このスレッドのルーパーを handleMessage() を実装するクラスに関連付けるだけです。これは正しい実装でしょうか?
HandlerThread thread = new HandlerThread("DownloadService");
thread.start();
スレッドに関連付けられたルーパーは、thread.start() が返された直後にメッセージ キューにメッセージが到着するのを待っていますか? その場合は、このスレッドのルーパーを handleMessage() を実装するクラスに関連付けるだけです。これは正しい実装でしょうか?
スレッドに関連付けられたルーパーは、thread.start() が返された直後にメッセージ キューにメッセージが到着するのを待っていますか?
必ずしもそうではありません。start()
-- 将来のある時点で -- を作成するスレッドのみを作成しますLooper
。start()
ルーパーの準備が整うのを待ちません。
編集:ただし、HandlerThread.getLooper()
ルーパーがまだ準備されていない場合は、ルーパーが適切に準備されるのを待つため、これは通常問題ではありません。
補足:HandlerThread
実際にはLooper
.