前言

Broadcast是Android四大组件之一,方便Android系统全局的消息通知。今天就简单的记录一下引入广播的优点以及广播使用相关的内容。

本文大部分内容摘抄的,记录于此只是方便自己查阅。

正文

好处

  1. 方便组件之间信息和数据传递

       比如Activity,Service之间可以通过广播进行信息和数据的传递

  1. 方便程序间互通消息

       比如应用通过观察者模式监听设备来电,关机,关屏进行相关操作

分类

广播分为两种,普通广播有序广播

普通广播

普通广播是一种完全异步执行的广播。

广播发送后,所有的广播接收器几乎在同一时刻接受到广播消息,且该广播无法被拦截继续传播。

使用
 Intent intent=new Intent("com.biuamll.ACTION.NORMAL_BROADCAST");
 //设置包名表示指定应用接收
 //intent.setPackage("com.biuamll.demo");
 sendBroadcast(intent);
有序广播

有序广播是一种同步执行的广播。

广播发送后,同一时刻只有一个广播接收器能够收到这条广播消息,当这个广播接收器中的逻辑执行完毕后,广播才会继续传递。

广播接受器是有先后顺序的,优先级高的广播接收器就可以先收到广播消息,并且前面的广播接收器还可以截断正在传递的广播,这样后面的广播接收器就无法收到广播消息了。

可以通过abortBroadcast()进行终止广播继续发送。

使用
 Intent intent=new Intent("com.biuamll.ACTION.ORDER_BROADCAST");
 //设置包名表示指定应用接收
 //intent.setPackage("com.biuamll.demo");
 sendOrderedBroadcast(intent,null);

注册

广播的注册分两种,静态注册广播和动态注册广播。

静态注册

常驻类型的广播。

即使应用程序关闭后或没启动,如果有广播来,程序也会被系统拉起并处理广播。

  1. 优点:不受应用生命周期的影响,常驻

  2. 缺点:常驻会耗费cpu、电量等资源

动态注册

不常驻,广播会跟随程序的生命周期,需要用户手动注册和注销。

在Android的广播机制中,动态注册优先级高于静态注册优先级。

  1. 优点:动态注册的优先级高于静态注册的优先级,取消注册后,不再占用资源

  2. 缺点:程序退出,注销广播后,便无法进行广播监听

参考文章

  1. Android:安卓学习笔记之广播机制的简单理解和使用

  2. Android广播的意义及两种注册方式的优缺点

相关文章

暂无评论

none
暂无评论...