在Android中,可以使用广播机制来实现模块之间的通信。下面是一个示例代码,演示了如何发送自定义广播和接收广播的过程。
首先,在发送广播的模块中,可以通过以下代码发送广播:
// 创建一个Intent对象,指定广播的Action和数据
Intent intent = new Intent("com.example.MY_CUSTOM_ACTION");
intent.putExtra("message", "Hello, World!");
// 发送广播
sendBroadcast(intent);
在接收广播的模块中,需要注册一个广播接收器来接收指定的广播,并在接收到广播时执行相应的操作。可以通过以下代码实现:
// 创建一个广播接收器
private BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// 接收到广播后的操作
String message = intent.getStringExtra("message");
Log.d("MyReceiver", "Received broadcast: " + message);
}
};
// 在onCreate()方法中注册广播接收器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 创建IntentFilter对象,指定要接收的广播Action
IntentFilter filter = new IntentFilter("com.example.MY_CUSTOM_ACTION");
// 注册广播接收器
registerReceiver(myReceiver, filter);
}
// 在onDestroy()方法中取消注册广播接收器
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(myReceiver);
}
在接收广播的模块中,需要在AndroidManifest.xml文件中添加相应的权限和广播接收器的声明:
这样,当发送广播的模块发送广播时,接收广播的模块就可以接收到该广播,并执行相应的操作。