理论教育 广播接收器的创建与注册方法详解

广播接收器的创建与注册方法详解

时间:2023-06-12 理论教育 版权反馈
【摘要】:要使用广播接收器接收其他应用程序发出的广播,先要在本应用中创建广播接收器并进行注册。接下来针对广播接收器的创建与注册进行详细讲解。注册非常驻型广播非常驻型广播依赖于注册广播组件的声明周期,例如,在Activity中注册广播接收器,当Activity销毁后,广播也随之被移除。

广播接收器的创建与注册方法详解

要使用广播接收器接收其他应用程序发出的广播,先要在本应用中创建广播接收器并进行注册。注册广播有两种方式:常驻型广播与非常驻型广播。接下来针对广播接收器的创建与注册进行详细讲解。

(1)创建广播接收器

要监听到广播事件进行处理,需要创建一个类继承自BroadcastReceiver,然后重写onReceive()方法,具体代码如下:

当监听到有广播发出时,系统就会调用onReceive()方法,在onReceive()方法中进行对事件的处理即可。

(2)注册常驻型广播

常驻型广播是当应用程序关闭后,如果接收到其他应用程序发出的广播,那么该程序会自动重新启动。常驻型广播需要在清单文件中注册,代码如下:

上述代码是在清单文件中注册的监听短信接收的广播,android:name="com.example.broadcast.MyBroadcastReciver"是创建的广播接收器的全路径名;与定义隐式意图一样,广播接收器也需要注册一个<intent-filter>,在过滤器中指定要接收的广播事件,"android.provider.Telephony.SMS_RECEIVED"是系统内部定义的短信接收的广播事件;android:priority="20"是该广播的优先级,这个值越大,代表接收的优先级越高,优先级的作用在后面介绍。(www.daowen.com)

(3)注册非常驻型广播

非常驻型广播依赖于注册广播组件的声明周期,例如,在Activity中注册广播接收器,当Activity销毁后,广播也随之被移除。这种广播事件在代码中注册,具体代码如下所示:

上述代码就是在代码中注册广播事件,MyBroadcastReciver是自定义的继承自BroadcastReciver的类。与清单文件中注册一样,代码注册广播同样需要进行过滤,IntentFilter接收的是监听的广播事件,最后用registerReceiver函数进行注册。

与清单文件注册广播不同的是,代码有注册也有移除,比如在Activity的onCreate()中注册广播,就要在onDestory()中进行解除广播,代码如下:

需要注意的是,广播接收器的生命周期是非常短暂的,在接收到广播的时候创建,onReceive()方法结束后销毁。常驻型广播在应用程序关闭后,接收到广播会重新自动创建。非常驻型广播则依赖于注册广播组件的生命周期,可调用unregisterReceiver()方法手动移除。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈