在Android中,Broadcast是一种跨进程通信(IPC)的方式。它允许应用程序发送和接收消息,而无需直接相互调用。以下是实现跨进程通信的步骤:
Intent
对象创建要发送的消息。sendBroadcast()
方法将Intent
发送到广播总线。示例代码:
Intent intent = new Intent("com.example.MY_BROADCAST");
intent.putExtra("key", "value");
sendBroadcast(intent);
BroadcastReceiver
的类,并重写onReceive()
方法。AndroidManifest.xml
文件中声明广播接收器,或使用registerReceiver()
方法在运行时动态注册。示例代码:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if ("com.example.MY_BROADCAST".equals(action)) {
String data = intent.getStringExtra("key");
// 处理接收到的消息
}
}
}
在AndroidManifest.xml
中声明:
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="com.example.MY_BROADCAST" />
</intent-filter>
</receiver>
或使用registerReceiver()
方法:
MyBroadcastReceiver myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter intentFilter = new IntentFilter("com.example.MY_BROADCAST");
registerReceiver(myBroadcastReceiver, intentFilter);
onReceive()
方法中处理接收到的广播消息。注意:
ContentProvider
、Socket
或Messenger
。LocalBroadcastManager
可以在同一应用程序的不同组件之间发送和接收广播,而无需通过网络。这对于不需要跨网络通信的场景非常有用。