コンポーネントは、アプリを構成する重要な機能要素です。各コンポーネントはそれぞれ異なる機能をもっており、
開発者はコンポーネントを組み合わせて利用することにより、アプリに様々な機能を実装することができます。
コンポーネントには次の4種類があります。
-
Activity
ユーザインターフェース(UI)を提供するコンポーネントです。
利用者に画面を表示して、利用者からのデータ入力や操作を受け取ります。
-
BroadcastReceiver
システム、または他のアプリからの通知(Broadcast)を受け取るために使用するコンポーネントです。
Android OSからアラームを受け取ったり、自アプリ内で非同期に実行されていたスレッドから処理完了通知を受け取ったりする場合に使用します。
-
Service
ユーザインターフェースを持たず、バックグラウンドで処理を継続したり、他のアプリに機能を提供したりする際に使用されるコンポーネントです。
-
ContentProvider
アプリ間でデータを受け渡す仕組みを受け持つコンポーネントです。
ContentProviderを使用することにより、アプリはデータがSDカード上のファイルなのか、
データベースなのかといった実体の違いを意識することなく、同じインターフェースを使用してさまざまなデータにアクセスできます。
他のアプリと連携をするアプリを作成する際には、コンポーネントを公開し、他のアプリからのIntentに応答するよう設定します。
コンポーネント間の連携にはIntentを使用します。
Intentを用いることにより、アプリ内のコンポーネント間やアプリ間でデータの受け渡しが可能になります。
Intentには以下の2種類があります。それぞれに用途や動作が異なるため、それらをきちんと理解した上で利用することが重要です。
-
明示的Intent
Intentを送信する際に受け取り先のコンポーネントを指定して送信します。
-
暗黙的Intent
Intentを送信する際に受け取り先のコンポーネントを指定せず、アクションと呼ばれる処理方法を指定して送信するIntentです。
送信側が指定したアクションに呼応するコンポーネントが、送信されたIntentを受け取ります。
受け取り先のコンポーネントは、Intentを受け取るためにAndroidManifest.xmlの設定が必要になります。