四大组件之BroadcastReceive

本文详细介绍了Android应用中的BroadcastReceive概念,包括其用途、注册方式(静态和动态)、类型(有序广播)以及如何避免内存泄漏的问题。通过实例演示了如何在Android应用中灵活运用BroadcastReceive来响应系统事件。
摘要由CSDN通过智能技术生成

一、什么是BroadcastReceive:

BroadcastReceive:广播接收者,
顾名思义,用来接收应用程序和系统发出来的广播,作用体现在方方面面:例如系统电量不足时会产生一个广播,可以利用这条广播提醒用户;系统开机后会产生一条广播,通过这条广播可以开启开机的相关服务等;
二、BroadcastReceive的注册:

1、静态注册:


<receiver android:name=".MyReceiver">
            <intent-filter>
                <action android:name="android.intent.action.MY_BROADCAST"/>
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </receiver>
配置好了以后,只要在 只要android.intent.action.MY_BROADCAST这个地址的广播,MyReceiver都能够接收的到;

2、动态注册:


MyReceiver receiver = new MyReceiver();

IntentFilter filter = new IntentFilter();
filter.addAction("android.intent.action.MY_BROADCAST");

registerReceiver(receiver, filter);

注意,registerReceiver是android.content.ContextWrapper类中的方法,Activity和Service都继承了ContextWrapper,所以可以直接调用。在实际应用中,我们在Activity或Service中注册了一个BroadcastReceiver,当这个Activity或Service被销毁时如果没有解除注册,系统会报一个异常,提示我们是否忘记解除注册了。所以,记得在特定的地方执行解除注册操作:

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(receiver);
}

三、BroadcastReceive类型:



有序广播(Ordered Broadcast):
它每次只发送到优先级较高的接收者那里,然后由优先级高的接受者再传播到优先级低的接收者那里,优先级高的接收者有能力终止这个广播。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值