AndroidにおけるIntentとIntentFilterの役割は何ですか。
Android において Intent は、Activity、Service、BroadcastReceiver などの異なるコンポーネント間でメッセージオブジェクトとして使用され、情報をやり取りします。 Intent は、コンポーネントの起動、データの受け渡し、その他のさまざまな操作の実行に使用できます。
具体的には、Intent は以下の役割を担っています。
- コンポーネントを起動:IntentによりActivity、Service、BroadcastReceiver、またはContent Providerを起動して、バックグラウンドで実行できます。
- インテントによりデータを渡す:インテントはデータを保持することができ、putExtra()メソッドによってインテントにデータを追加し、ターゲットコンポーネントではgetExtra()メソッドでデータを取得します。
- 特定の操作の実行:Intentでは、電話をかける、メッセージを送信する、音楽を再生するなど、特定の操作を実行できます。
IntentFilterは、コンポーネントが反応できるIntentのタイプと属性を指定するためのフィルターです。コンポーネントのマニフェストファイルでIntentFilterを定義することで、コンポーネントは特定タイプのIntentを受け取ることができます。
IntentFilterは具体的に次のような役割を果たします。
- IntentFilter を使って、コンポーネントで処理可能な Intent の種類(ACTION_VIEW、ACTION_SEND など)を指定できます。
- Intentの属性を指定する:IntentFilterを用いて、Intentの属性(データタイプ、データスキーム、データパスなど)を指定可能。
- コード上でIntentFilterを動的に登録することで、コンポーネントは実行時に特定のタイプのIntentを受信できるようになります。
つまりIntentとIntentFilterは、Androidにおいて、コンポーネント間の通信を実行し、コンポーネントで受け取ることができるIntentの種類を指定するための重要な仕組みです。