Android 四大组件之 BroadcastReceiver(广播和广播接收器)

Android 四大组件之 BroadcastReceiver(广播和广播接收器),第1张

概述重温四大组件之BroadcastReceiver。目录一、理解广播与广播接收器二、相关API三、常见的广播四、发送两种类型的广播五、静态注册和动态注册广播接收器一、理解广播与广播接收器1.广播事件处理属于系统级的事件处理(一般事件处理是属于View级的事件处理)2.一个应用可

重温四大组件之 broadcastReceiver。

目录

一、理解广播与广播接收器

二、相关API

三、常见的广播

四、发送两种类型的广播

五、静态注册和动态注册广播接收器


一、理解广播与广播接收器

1. 广播事件处理属于系统级的事件处理(一般事件处理是属于VIEw级的事件处理)
2.一个应用可以在发生特定事件时发送broadcast,系统中任何应用只要注册了对应Receiver就会接收到此broadcast
3.一个应用如果对某个广播感兴趣,就可以注册对应的Receiver来接收广播
4.广播事件机制是应用程序(进程间)之间通信的一种手段 

 

二、相关API

Context.

sendbroadcast(Intent intent):发送一般广播sendOrderedbroadcast(lntent intent):发送有序广播registerReceiver(receiver,intentFilter):注册广播接收器unRegisterReceiver(receiver):解注册广播接收器

broadcastReceiver

onReceive(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

四、发送两种类型的广播发送一般广播 :Context.sendbroadcast发送有序广播 : Context.sendOrderedbroadcast

区别: 前者无序(如果没设置优先级的情况下), 不可中断广播

或者有序,根据优先级和注册顺序先后一次执行,可以中断广播, 中断后,后面的接收器无法再收到该广播。

注: 有序是可以通过设置 intentfilter 的priority 属性, 1-1000, 值越大,优先级越高

五、静态注册和动态注册广播接收器
 静态注册动态注册
注册方式配置文件代码
注册时间及@R_301_6063@时间

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

注册时不会创建对象,接收到广播才创建对象

执行registerReceiver(broadcastReceiver , IntentFilter)

注册就创建对象

生命结束的时间(解注册)

及对象回收时机

应用卸载

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

执行 unregisterReceiver(broadcastReceiver) (Activity退出时必须解注册)

解注册后对象被回收

应用场景需要监听的时间为应用的整个生命过程中只服务于某个Activity 或者Service

 

总结

以上是内存溢出为你收集整理的Android 四大组件之 BroadcastReceiver(广播和广播接收器)全部内容,希望文章能够帮你解决Android 四大组件之 BroadcastReceiver(广播和广播接收器)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1051188.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存