
和你一起终身学习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、Broadcast概述
二、Broadcast的注册
三、Broadcast的注册类型
四、静态注册开机广播的实现
五、动态监听亮灭屏幕广播实现
六、广播的发送方法
七、参考文献
一、Broadcast概述
在了解广播之前,我们先了解Broadcast继承关系 ,Broadcast的继承关系如下:
java.lang.Object
↳ android.content.BroadcastReceiver
Broadcast是 Android 四大组件之一,是一种广泛运用在应用程序之间异步传输信息的机制。Broadcast 本质上是一个Intent 对象,差别在于Broadcast可以被多个 BroadcastReceiver处理。BroadcastReceiver 是一个全局监听器,通过它的 onReceive() 可以过滤用户想要的广播,进而进行其它操作。
BroadcastReceiver 默认是在主线程中执行,如果onReceiver()方法处理事件超过10s,则应用将会发生ANR(Application Not Responding),此时,如果建立工作线程并不能解决此问题,因此建议:如处理耗时操作,请用 Service代替。
BroadcastReceiver的主要声明周期方法onReceiver(),此方法执行完之后,BroadcastReceiver实例将被销毁。
二、Broadcast的注册
Broadcast 属于Android四大组件之一,必须在Androidmainfest.xml中注册.
Broadcast 注册方法如下:
<receiver
android:name="ReceiverMethod"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="String....." />
</intent-filter>
</receiver>
注意:
如不注册,将导致无法接收处理广播消息
三、Broadcast的注册类型
广播的注册分两种(静态注册、动态注册),一种在Androidmainfest.xml中静态注册,另一种是在Java代码中动态注册。
1.静态注册
一些系统发送的广播需要在Androidmainfest.xml中静态注册,例如 开机广播,apk状态改变广播,电量状态改变广播等。这些静态注册的广播,通常在Androidmainfest.xml中拦截特定的字符串。
静态注册广播的方法如下:
<?x

本文详细介绍了Android中的BroadcastReceiver,包括BroadcastReceiver的作用、注册方式(静态和动态)、如何实现开机广播和亮灭屏广播,以及Broadcast的发送方法。强调了BroadcastReceiver在主线程中执行可能导致的ANR问题,并提醒在处理耗时操作时使用Service代替。
最低0.47元/天 解锁文章
1950

被折叠的 条评论
为什么被折叠?



