美文网首页工作生活
关于Broadcast Receiver的知识点

关于Broadcast Receiver的知识点

作者: 纸狒 | 来源:发表于2019-07-05 08:16 被阅读0次

一,广播

二,实现广播

三,广播实现机制

四,LoacalBroadcastManager详解


                                                       一,广播

1,广播定义:类似观察者模式

2,广播场景

3,广播种类


1,定义: 

     在Android中,Broadcast时一种广泛运用的在应用程序之间传输信息的机制,Android中我们要发送的广播内容是一个Intent,这个Intent中可以携带我们要传送的数据

    可以让Service发广播到接收者。

2,使用场景:

A: 同个App具有多个进程的不同组件之间的消息通信

B:不同App之间的组件之间的消息通信

3,种类

1)Normal Broadcast:Context.sendBroadcast(),该广播是未定义顺序的,异步的

2)System Broadcast:Context:sendOrdered Broadcast:有序的

3)Local Broadcast:只在app内传播


                                      二,实现广播receiver

1,静态注册:注册完成就一直运行(写在mainfest中,activity被销毁或者app被杀死的时候,还能收到广播)

2,动态注册:跟随activity的生命周期(代码中进行注册和解绑)


                                      三,内部实现机制

1,自定义广播接收者BroadcastReceiver,并复写onRecvice();

2,通过Binder机制向AMS(Activity Manager Service)进行注册;

3,广播发送者通过Binder机制向AMS发送广播;

4,AMS查找符合条件(IntentFilter / Permission等)的BroadcastReceiver,将广播发送到Broadcast Receiver(一般情况下是activity)相应的消息循环队列中;

5,消息循环执行到此广播,回调BroadcastReceiver中的onReceiver()方法


四,localBroadcastManager详解

1,使用它发送的广播将只在app内部传输,因此不必担心泄露隐私数据

2,其他app无法对你的app发送该挂广播,因此你的app根本不可能接收到非自身应用发送的该广播,因此你不必担心有它会泄露可以利用

3,比系统的全局广播更加高效


从源码的角度看,广播用的是单例管理

1,LocalBroadcastManager高效的原因主要是因为它内部通过Handler实现,它的sendBroadcast()方法含义并非我们平时所用的一样,它的sendBoradcast()方法其实是通过Handler,发送一个message实现的。

2,既然是它内部通过Handler来实现广播的发送的,那么相比与系统广播通过Binder实现,那肯定是更加高效的。

    同时使用Handler实现,别的应用无法向我们的应用发送该广播,而我们应用内发送的广播也不会离开我们的应用。

3,LocalBroadcastManager内部协作主要是靠这两个Map集合,mReceiver和mActions,当然还有一个list集合mPendingBroadcasts这个主要就是在存储待接收的广播对象

相关文章

  • 关于Broadcast Receiver的知识点

    一,广播 二,实现广播 三,广播实现机制 四,LoacalBroadcastManager详解 ...

  • Android BroadcastReceiver详解

    Broadcast Receiver是什么 Broadcast Receiver是四大组件之一,是一种广泛运用在应...

  • Activity之生命周期

    Android四大组件有Activity,Service,Broadcast Receiver,Broadcast...

  • Broadcast Receiver

    一、广播 1.广播定义 Broadcast Receiver是一种广泛运用的在程序之间传输信息的机制,androi...

  • Broadcast Receiver

    广播的定义 四大组件之一,是安卓应用程序之间传递信息的机制。我们要发送的广播内容是一个Intent,这个Inten...

  • Broadcast Receiver

    广播广泛运用于应用程序之间传输信息(进程间通信)的机制,而BroadcastReceiver是对发送出来的广播进行...

  • Broadcast Receiver

    一.广播 1.在Android中,Broadcast在应用程序之间传输信息的机制,我们发送的广播内容是一个Inte...

  • Broadcast Receiver

    广播的两种类型 标准广播(Normal broadcasts) : 是一种完全异步执行的广播,在广播发出后,所有...

  • Broadcast Receiver

    1.请描述一下 BroadcastReceiver(★★) BroadCastReceiver 是 Android...

  • Broadcast Receiver

    1.系统广播 答:就是手机中自带的广播,例如 手机快没电了、拍照、屏幕的开关等等手机系统发出的广播,根据特定的指令...

网友评论

    本文标题:关于Broadcast Receiver的知识点

    本文链接:https://www.haomeiwen.com/subject/vzndhctx.html