4.7发送/接收广播消息
问题
您想创建一个接收另一个活动发送的简单广播消息的活动。
解
设置广播接收器,实例化消息接收器对象,并创建IntentFilter。 然后向接收者注册必须接收广播消息的活动。
讨论
示例4-12中的代码设置广播接收器,实例化消息接收器对象,并创建IntentFilter。
实例4-12。 创建和注册BroadcastReceiver
示例4-13中的代码显示了如何发布广播事件。
问题
您想创建一个接收另一个活动发送的简单广播消息的活动。
解
设置广播接收器,实例化消息接收器对象,并创建IntentFilter。 然后向接收者注册必须接收广播消息的活动。
讨论
示例4-12中的代码设置广播接收器,实例化消息接收器对象,并创建IntentFilter。
实例4-12。 创建和注册BroadcastReceiver
// Instantiate message receiver object. You should
// create this class by extending android.content.BroadcastReceiver
// The method onReceive() of this class will be called when broadcast is sent
MyBroadcastMessageReceiver _bcReceiver = new MyBroadcastMessageReceiver();
// Create IntentFilter
IntentFilter filter = new IntentFilter(
MyBroadcastMessageReceiver.class.getName());
// And register your receiver with your activity which must receive broadcast message
// Now whenever this type of message is generated somewhere in the system -
// _bcReceiver.onReceive() method will be called within main thread of myActivity
myActivity.registerReceiver(_bcReceiver, filter);
示例4-13中的代码显示了如何发布广播事件。
实例4-13。 发布广播事件
Intent intent = new Intent(
MyBroadcastMessageReceiver.class.getName());
intent.putExtra("some additional data", choice);
someActivity.sendBroadcast(intent);