ブロードキャスト レシーバ
アンドロイドのコンポーネントの1つであるブロードキャスト レシーバを使う事により、ブロードキャスの受信をおこなう事ができます。
アプリケーション内でのブロードキャストの送受信
アクティビティクラスより、テキストボックスに入力された文字列をブロードキャストで送信し、 アプリケーション内のブロードキャスト レシーバクラスにて、受信した文字列をトーストに表示するプログラムの例を以下に示します。
ブロードキャストプログラム1(1)-ブロードキャスト送信側アクティビティ(SenderActivity.java)
上記プログラムの30行目で指定されている、ブロードキャストクラスGudonReceiverを新たに作成して、以下のコードを記述します。
ブロードキャストプログラム1(2)-レシーバクラス(GudonReceiver.java)
マニュフェストファイルに、レシーバクラスの登録が必要です。
ブロードキャストプログラム1(3)-マニュフェストファイル(AndroidManifest.xml)
このプログラムを実行して、テキストボックスに文字列を入力して「ブロードキャストを送信」ボタンを押すと、 以下のようにテキストボックスに入力した文字列がトーストにて表示されます。
「ブロードキャストプログラム1(2)」の12行目のonReceiveメソッドについては、Android Developersのブロードキャスト レシーバのライフサイクルを参照して下さい。
単純なプログラムなので、コードの説明は特に必要無いと思います。
アプリケーション間でのブロードキャストの送受信
アプリケーション間で、ブロードキャストの送受信をおこなう事ができます。
以下のように、ブロードキャスト受信側アプリケーションのマニュフェストファイルを変更して、 インテントフィルタを追加、独自のアクション「gudon.sample.broadcastTarget.XXX"」を登録します。
ブロードキャストプログラム2(1)-マニュフェストファイル(AndroidManifest.xml)の修正
アンドロイドプロジュエクトを新たに作成して、「ブロードキャストプログラム1」のブロードキャストレシーバへブロードキャストを送信するアクティビティクラスを作成します。
ブロードキャストプログラム2(2)-ブロードキャスト送信側アクティビティ(SenderActivity.java)
ブロードキャスト送信ボタンは2つあり、それぞれ暗黙的なインテントよる送信と明示的なインテントによる送信をおこないます。
参考URL
- Android Developers
- 開発ガイド
- リファレンス