android 2个程序通过广播互传消息,两个应用程序之间的android通信
时间: 2023-06-20 13:04:47 浏览: 258
Android中两个应用程序之间可以通过广播进行通信。广播是一种系统级别的消息传递机制,可以在应用程序之间发送消息。
下面是一个示例,假设我们有两个应用程序,一个应用程序发送消息,另一个应用程序接收消息。
1. 发送应用程序
首先,在发送应用程序的AndroidManifest.xml文件中注册广播接收器,如下所示:
```
<receiver android:name=".MyBroadcastReceiver" >
<intent-filter>
<action android:name="com.example.mybroadcast.MY_ACTION" />
</intent-filter>
</receiver>
```
这里,我们为广播定义了一个名称`com.example.mybroadcast.MY_ACTION`,并在`<intent-filter>`中将其添加到我们的广播接收器中。
然后,在我们的发送应用程序中,我们可以创建一个Intent对象,并使用`sendBroadcast()`方法将其发送出去:
```
Intent intent = new Intent();
intent.setAction("com.example.mybroadcast.MY_ACTION");
intent.putExtra("message", "Hello, world!");
sendBroadcast(intent);
```
这里,我们创建了一个Intent对象,并将我们定义的广播名称添加到它中。然后,我们将一个“message”字符串作为附加数据添加到Intent中,并使用`sendBroadcast()`方法将其发送出去。
2. 接收应用程序
接下来,在接收应用程序的AndroidManifest.xml文件中注册广播接收器,如下所示:
```
<receiver android:name=".MyBroadcastReceiver" >
<intent-filter>
<action android:name="com.example.mybroadcast.MY_ACTION" />
</intent-filter>
</receiver>
```
这里,我们为广播定义了一个名称`com.example.mybroadcast.MY_ACTION`,并在`<intent-filter>`中将其添加到我们的广播接收器中。
然后,在我们的接收应用程序中,我们可以创建一个广播接收器类来接收我们定义的广播,如下所示:
```
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
Toast.makeText(context, "Received message: " + message, Toast.LENGTH_SHORT).show();
}
}
```
这里,我们创建了一个广播接收器类`MyBroadcastReceiver`,并在`onReceive()`方法中处理广播。我们从Intent对象中获取附加数据,并在Toast中显示它。
记得在我们的接收应用程序中,需要在`AndroidManifest.xml`文件中注册`MyBroadcastReceiver`类。
这样,我们就完成了两个应用程序之间的Android通信,通过广播互传消息。
阅读全文