Android 11 デベロッパー プレビュー 2 が公開されました。ぜひお試しのうえ、フィードバックをお寄せください

複数のスレッドへの操作の送信

データ集約型の操作を長時間時実行するときのスピードと効率は、多くの場合、複数のスレッドで実行される小さな操作に分割することで改善します。複数のプロセッサ(コア)を備えた CPU を搭載したデバイスでは、システムは各サブ オペレーションが実行される機会を待つのではなく、スレッドを並列に実行できます。たとえば、サムネイル画面に表示するために複数の画像ファイルをデコードする場合、各デコードを別々のスレッドで実行すると、かなり高速に実行されます。

このガイドでは、スレッドプール オブジェクトを使用して、Android アプリで複数のスレッドを設定および使用する方法を示します。また、スレッドで実行するコードを定義する方法と、スレッドの 1 つと UI スレッドの間で通信を行う方法も学習します。

レッスン

スレッドで実行するコードを指定する

Runnable インターフェースを実装するクラスを定義することにより、別の Thread で実行するコードを作成する方法を学びます。

複数のスレッド用のマネージャーを作成する

Thread オブジェクトのプールと Runnable オブジェクトのキューを管理するオブジェクトの作成方法を学びます。このオブジェクトは ThreadPoolExecutor と呼ばれます。

スレッドプールのスレッドでコードを実行する

スレッドプールのスレッドで Runnable を実行する方法を学びます。

UI スレッドと通信する

スレッドプール内のスレッドから UI スレッドに通信する方法を学びます。

詳細

Android でのマルチスレッド操作の詳細については、次のガイドをご覧ください。

サンプルアプリ

このガイドのコンセプトを試すには、ThreadSample をダウンロードします。