返回

从0系统学Android--5.2 发送广播

Android

我们之前已经学习了如何接收广播,现在让我们来看看如何发送自定义广播。广播类型分为两种:标准广播和有序广播。标准广播是一种简单的广播,它以异步方式发送,接收器可以任意顺序接收广播。有序广播是一种更复杂的广播,它以同步方式发送,接收器必须按照注册顺序接收广播。

发送标准广播

要发送标准广播,可以使用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中发送自定义广播。希望这篇文章对您有所帮助。