broadcastについて

任意のブロードキャストメソッド ( Context.sendBroadcast()、 Context.sendOrderedBroadcast()、Context.sendStickyBroadcast() などといった ) に渡されるインテントオブジェクトは、関与しているすべてのブロードキャストレシーバに配信されます。さまざまな種類のブロードキャストがシステムコード内で発生します。
4. インテントとインテントフィルタ - ソフトウェア技術ドキュメントを勝手に翻訳

broadcastされたIntentの受信

ACTION_VIEWなインテントを受信するreceiverをマニフェストに記述。すべてに配信されるか確認するため、複数定義する。

		<receiver android:name="ExBroadcastReceiver">
			<intent-filter>
				<action android:name="android.intent.action.VIEW"></action>
			</intent-filter>
		</receiver>

		<receiver android:name="ExBroadcastReceiver2">
			<intent-filter>
				<action android:name="android.intent.action.VIEW"></action>
			</intent-filter>
		</receiver>

BroadcastReceiverを継承する。受信するとトーストメッセージを表示するように実装。

public class ExBroadcastReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		Toast.makeText(context, "onReceive", Toast.LENGTH_SHORT).show();
	}

}
public class ExBroadcastReceiver2 extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		Toast.makeText(context, "onReceive2", Toast.LENGTH_SHORT).show();
	}

}

broadcastの送信

Activity#sendBroadcast(Intent)で、broadcastを送信してみる。

public class SampleBroadcastActivity extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		Button button = (Button) findViewById(R.id.button);
		button.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				Intent intent = new Intent();
				intent.setAction(Intent.ACTION_VIEW);
				sendBroadcast(intent);
			}
		});
                //略

実行してbutonをクリックすると、ExBroadcastReceiverとExBroadcastReceiver2のonReceiveが実行されることを確認。