android 广播 BroadcastReceiver

Context 
 sendBroadcast(Intent intent) 发送一般广播 
 sendOrderedBoardcast(Intent intent) 发送有序广播
 registerReceiver(receiver,intentFilter) 注册广播接收器
 unResisterReceiver(receiver) 解注册广播接收器
BroadcastReceiver
 onReceiver(Context context,Intent intent) 接收到广播的回调
 abortBroadcast() 中断广播的继续传播
 boolean isOrderedBroadcast() 判断是否是有序广播
 
 
系统常见的广播: 
 开机完成广播: android.provider.Telephony.SMS_RECEIVED
 收到短信广播: Intent.ACTION_BOOT_COMPLETED
 应用被卸载广播 Intent.ACTION_PACKAGE_REMOVED
 手机锁屏 Intent.ACTION_SCREEN_OFF
 手机开锁 Intent.ACTION_SCREEN_ON
 
 
 
注册广播接收器
 静态注册(配置清单文件)
 <receiver android:name="BroadcastReceiver全类名"
 <!--指定当前receiver的优先级,范围1-1000,越大优先级越高-->
 <intent-filter android:priority="1000"/>
 <action android name="......">
 </intent-filter>
 </receiver>
动态注册(纯代码)
 XxxBroadcastReceiver receiver = new XxxBroadcastReceiver();
 IntentFilter filter = new IntentFilter(action);
 registReceiver(receiver,filter);
 
静态注册和动态注册的比较
 静态注册动态注册
注册方式配置清单文件java代码
注册的时间应用安装成功 手机开机完成 注册时不会创建对象, 接收到广播才创建执行registerReceiver(receiver ,intentFilter) 注册就创建对象
生命结束的时间 (解注册)应用卸载 对象执行onReceiver()后就回收了执行unregisterReceiver() (activity退出必须解注册) 解注册后对象被回收
应用情景需要监听的时间为 应用的整个生命过程只服务于某个Activity/service
无序广播与有序广播
 无序广播有序广播
方式context.sendBroadcast(Intent intent)context.sendOrderedBroadcast(Intent intent)
多人接收时是否有序无序,都会同时执行有序,根据优先级和注册先后依次执行
是否可以中断不可以可以,通过br.abortBroadcast() 中断后,后面的接收器不能接收到此广播
 

《android 广播 BroadcastReceiver》

    原文作者:Lance_w
    原文地址: https://blog.csdn.net/wsq_tomato/article/details/53016775
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞