-
Notifications
You must be signed in to change notification settings - Fork 354
2.08. 非同期処理
この章では、Android での非同期処理について解説します。
Service とは、バックグラウンドで動作する Android のコンポーネントです。
サービスには、その呼び出し方によって 2 つのいずれかの状態をとります。
Context#startService(Intent)
によって呼び出された時の状態です。
Context#bindService(Intent)
によって呼び出された時の状態です。
一般的な Service を作成するひな形クラスです。
バックグラウンドで動作するものではありますが、その実動作しているスレッドは、Service を動かしているプロセスのメインスレッドです。
つまり、Service 内でブロックする処理を記述すると、メインスレッドの処理がブロックします。よって、独自のプロセスで動かしたい場合は、その旨 AndroidManifest で宣言する必要があり、また、ブロックする処理を実行する場合は、自分でスレッドを新しく立てる必要があります。
Intent による呼び出しで開始される Service であり、かつ、Service の開始要求を 1 つずつ順に処理するワーカスレッド上で動作する特別な Service です。 一度に複数の処理を並列して行う必要がない場合は、IntentService を利用するほうが実装が簡単です。
Portions of this page are reproduced from work created and shared by the Android Open Source Project and used according to terms described in the Creative Commons 2.5 Attribution License.