返回
从0系统学Android--5.2 发送广播
Android
2024-01-26 14:57:37
我们之前已经学习了如何接收广播,现在让我们来看看如何发送自定义广播。广播类型分为两种:标准广播和有序广播。标准广播是一种简单的广播,它以异步方式发送,接收器可以任意顺序接收广播。有序广播是一种更复杂的广播,它以同步方式发送,接收器必须按照注册顺序接收广播。
发送标准广播
要发送标准广播,可以使用Context.sendBroadcast()
方法。这个方法接收一个Intent
对象作为参数,Intent
对象指定了广播的类型和要发送的数据。例如,以下代码发送了一个名为"my_broadcast"的标准广播:
Intent intent = new Intent("my_broadcast");
context.sendBroadcast(intent);
发送有序广播
要发送有序广播,可以使用Context.sendOrderedBroadcast()
方法。这个方法接收四个参数:
Intent
对象,指定了广播的类型和要发送的数据。String
对象,指定了广播的权限。BroadcastReceiver
对象,指定了要接收广播的接收器。Handler
对象,指定了要处理广播结果的处理程序。
例如,以下代码发送了一个名为"my_ordered_broadcast"的有序广播:
Intent intent = new Intent("my_ordered_broadcast");
context.sendOrderedBroadcast(intent, null, broadcastReceiver, null, 0, null, null);
创建广播接收器
为了接收自定义广播,我们需要创建一个广播接收器。广播接收器是一个BroadcastReceiver
子类,它重写了onReceive()
方法。onReceive()
方法在广播被接收时被调用。例如,以下代码创建了一个名为MyBroadcastReceiver
的广播接收器:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// Handle the broadcast
}
}
为了让广播接收器能够接收广播,我们需要在AndroidManifest.xml
文件中注册它。例如,以下代码在AndroidManifest.xml
文件中注册了MyBroadcastReceiver
广播接收器:
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="my_broadcast" />
</intent-filter>
</receiver>
现在,当我们发送一个名为"my_broadcast"的标准广播时,MyBroadcastReceiver
广播接收器将收到该广播,并且onReceive()
方法将被调用。
总结
以上就是如何在Android中发送自定义广播。希望这篇文章对您有所帮助。