Android四大组件:BroadCastReceiver

版权声明:文章内容系为本人原创,如需转载,请注明出处。 https://blog.csdn.net/weixin_43778720/article/details/88071876
  1. BroadCastReceiver简介:
    BroadcastReceiver顾名思义就是“广播接收者”用来接收/监听系统或应用发送的广播 。
  2. BroadCastReceiver机制:
    当系统或应用发出广播时,将会扫描系统中的所有广播接收者,通过action匹配将广播发送给相应的接收者,接收者收到广播后将会产生一个广播接收者的实例,执行其中的onReceiver()这个方法;特别需要注意的是这个实例的生命周期只有10秒,如果10秒内没执行结束onReceiver(),系统将会报错。另外在onReceiver()执行完毕之后,该实例将会被销毁,所以不要在onReceiver()中执行耗时操作,也不要在里面创建子线程处理业务(因为可能子线程没处理完,接收者就被回收了);正确的处理方法就是通过intent调用activity或者service处理业务。
  3. BroadCastReceiver的两种注册方式和区别:
    BroadCastReceiver分为两种注册方式:动态注册和静态注册。
    区别:
    静态注册的广播接收者一经安装就常驻在系统之中,不需要重新启动唤醒接收者;
    动态注册的广播接收者随着应用的生命周期,由registerReceiver开始监听,由unregisterReceiver撤销监听。
  4. BoradCastReceiver的优先级:
    1. 在配置文件中设置
<receiver android:name=".MyBroadcastReceiver">
            <intent-filter  android:priority="1">
                <action android:name=“…"/>
            </intent-filter>
</receiver>
  1. 在类中设置
IntentFilter filter=new IntentFilter(“…");
filter.setPriority(Integer.MAX_VALUE);
registerReceiver(myReceiver, filter);

注意:android:priority它的值 越大 优先级越高 取值范围 -1000~1000,实际的值可以超过该范围

猜你喜欢

转载自blog.csdn.net/weixin_43778720/article/details/88071876