Android核心技术之(8)---四大应用组件之BroadcastReceiver

1.理论概述

1.1.广播事件处理属于系统级的事件处理(一般事件处理是属于View级的事件处理)

1.2.一个应用可以在发生特定事件时发送Broadcast,系统中任何应用只要注册了对应Receiver就会接收到此Broadcast

1.3.一个应用如果对某个广播感兴趣, 就可以注册对应的Receiver来接收广播

1.4.广播事件机制是应用程序(进程间)之间通信的一种手段

2.相关API
Context
•sendBroadcast(Intent intent) : 发送一般广播
•sendOrderedBroadcast(Intent intent) : 发送有序广播
•registerReceiver(receiver, intentFilter) : 注册广播接收器
•unRegisterReceiver(receiver) : 解注册广播接收器

BroadcastReceiver
•onReceive(Context context, Intent intent) : 接收到广播的回调
•abortBroadcast() : 中断广播的继续传播
•boolean isOrderedBroadcast() : 判断是否是有序广播

3.常见系统广播

收到短信广播: android.provider.Telephony.SMS_RECEIVED

开机完成广播: Intent.ACTION_BOOT_COMPLETED

•应用被卸载广播 : Intent.ACTION_PACKAGE_REMOVED

•手机锁屏 :Intent.ACTION_SCREEN_OFF

•手机开屏 :Intent.ACTION_SCREEN_ON

4.编写广播接收器类

•广播接收器类都必须继承于BroadcastReceiver类

publicclass MyBroadcastReceiver extends BroadcastReceiver{

   publicvoid onReceive(Context context, Intent intent){

  //处理广播

  }

}


5.注册广播接收器类

•方式一: 配置文件注册( 静态注册)

       <receiver android:name="com.atguigu.t6_br.MyBroadcastReceiver">

            <!--priority指定当前receiver的优先级,值是0-1000,越大越好  -->

            <intent-filter android:priority="500">

                <actionandroid:name="com.atguigu.t6_br.mybroadcastreceiver"/>

            </intent-filter>

        </receiver>

•方式二: 硬编码注册( 动态注册)

MyBroadcastReceiver2receiver2 = new MyBroadcastReceiver2();

IntentFilterfilter = new IntentFilter(action);

registerReceiver(receiver2,filter);


6.区别动态注册与静态注册

类别

静态注册

动态注册

注册方式

配置文件

Java代码

注册的时间

应用安装成功/手机开机完成

注册时不会创建对象

接收到广播才创建

执行registerReceiver(receiver, intentFilter)

注册就创建对象

生命结束的时间

(解注册)

应用卸载

对象执行onReceive()后就回收了

执行unregisterReceiver()

(activity退出必须解注册)

解注册后对象被回收

应用情景

需要监听的时间为应用的整个生命过程中

服务于某个Activity/Se

rvice


7.发送两种类型的广播

1.发送 一般广播:context.sendBroadCast(Intent intent)
2.发送 有序广播:context.sendOrderedBroadcast(Intent intent)
3.区别两种广播

类别

一般广播

有序广播

多人接收时是否有序

无序, 都会同时执行

有序,根据优先级和注册先后依次执行

是否可以中断

不可以

可以, 通过br.abortBroadcast()

中断后, 后面的接收器不能接收到此广播了





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值