广播(Broadcast)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了广播(Broadcast)相关的知识,希望对你有一定的参考价值。

参考技术A 广播(Broadcast)是一种广泛用于应用程序之间传递消息的机制,是Android系统的四大组件之一。广播机制包含3 个基本要素:广播(Broadcast),用于发送广播;广播接收器(BroadcastReceiver),用于接收广播;意图内容(Intent),用于保存广播相关信息的媒介。
广播分为两个方面:广播发送者和广播接收者(Broadcast Receiver),在 Android 系统中很多操作完成以后都会发送广播,比如:发送短信息、打出一个电话、开机或者网络状态改变和电量改变等。

广播分为无序广播(普通广播)和有序广播。

是一种完全异步执行的广播,效率较高。在广播发出之后,所有的广播接收者甚至可能会在同一时刻接收到这条广播消息,因此它们之间没有任何先后顺序可言。无序广播不可以被拦截,不可终止,不可修改。

是一种同步执行的广播,在广播发出之后,同一时刻只会有一个广播接收者能够收到这条广播消息,当这个广播接收者中的逻辑执行完毕后,广播才会继续传递。广播接收者是有先后顺序的,优先级高的广播接收者可以先收到广播消息,并且前面的广播接收者还可以截断正在传递的广播,使后面的广播接收者无法收到广播消息。

广播的注册分为静态注册和动态注册

在AndroidManifest.xml文件中添加

广播接收者

在Activity的onCreate()中注册广播

在Activity的onDestroy()中注销广播

广播的生命周期只有十秒左右,超过这个时间,就会报Application Not Response(ANR)。如果要做耗时操作,应该通过发送Intent给Service,让Service来完成。广播不能使用子线程来解决,因为BroadcastReceiver的生命周期很短,子线程还没结束,Broadcast可能就结束了。

以上是关于广播(Broadcast)的主要内容,如果未能解决你的问题,请参考以下文章

Android入门第48天-静态BroadCast之接受开机广播

广播接收者BroadCast的认识

Spark广播变量broadcast案例

广播——broadcast

Broadcast广播-Android

spark中的广播变量broadcast