Androidで `registerReceiver` の使用方法を教えてください。

AndroidのregisterReceiver()メソッドは、特定のブロードキャストメッセージを受け取るためにブロードキャストレシーバーを登録するために使用されます。このメソッドには、ブロードキャストレシーバーオブジェクトとIntentFilterオブジェクトの2つのパラメーターが必要です。

ブロードキャストレシーバーオブジェクトは BroadcastReceiver クラスを継承したクラスのインスタンスで、ブロードキャストメッセージを受信してそれに対応するロジックを処理するために使用されます。IntentFilter オブジェクトは、特定のタイプのブロードキャストメッセージを受信するように指定するために使用されます。

registerReceiver()メソッドは、特定のブロードキャストメッセージが届いたときにそれらを受け取って処理できるように、ブロードキャストレシーバーをAndroidシステムに登録します。 ブロードキャストレシーバーを登録すると、受信したブロードキャストメッセージがそのメソッドに渡され、ブロードキャストレシーバーオブジェクトのonReceive()メソッドがシステムによって自動的に呼び出されます。

registerReceiver()メソッドの戻り値であるインテントオブジェクトは、このインテントオブジェクトを使ってブロードキャストレシーバーを解除し、ブロードキャストメッセージの受信を中止することができます。ブロードキャストレシーバーを解除するには unregisterReceiver()メソッドを呼び出し、このインテントオブジェクトを引数として渡します。

以下に registerReceiver() メソッドのサンプルコードを示します。

BroadcastReceiver receiver = new MyBroadcastReceiver();  // 自定义广播接收器对象
IntentFilter filter = new IntentFilter("com.example.broadcast.MESSAGE_RECEIVED");  // 指定接收的广播消息类型
registerReceiver(receiver, filter);  // 注册广播接收器

このサンプルコードの独自ブロードキャストレシーバーは、”com.example.broadcast.MESSAGE_RECEIVED” 型のブロードキャストメッセージを受信するために使用される MyBroadcastReceiverというクラスのインスタンスです。registerReceiver()メソッドを使用して、ブロードキャストレシーバーがシステムに登録されています。

定期的なブロードキャスト受信の必要がなくなった場合は、メモリリークを回避するために、ブロードキャストレシーバを登録解除する必要があります。ActivityのonPause()またはonDestroy()メソッド内でunregisterReceiver()メソッドを呼び出すことで、ブロードキャストレシーバの登録を解除できます。

bannerAds