Android--静态广播和动态广播的区别

一、标准广播and有序广播

标准广播发出后所有广播接受器几乎同一时刻收到广播,并且没有顺序,所以广播不可被截断。

有序广播发出后同一时刻只能有有一个广播接收器收到广播消息,因此优先级高的广播的先收到消息,并且前面的接受器还可以截断消息。

二、动态注册广播接收器

注册广播的方式有两种:静态注册和动态注册

静态注册是在AndroidManifest.xml注册文件里注册,动态注册时在代码中注册

(1)创建广播接收器

创建一个类继承BroadcastReceiver 并重写onReceive()方法

(2)在onCreat()方法中创建IntentFilter实例

实现Intent过滤器类,并且添加调用.addAction()方法,添加想要监听的action。

(3)在oncreat()方法中实现刚才写的广播接听器

(4)调用registerReceiver()方法注册

registerReceiver(BroadcastReceiver,IntentFilter)将要注册的广播接收器和intent过滤器传给函数,这样就注册了专门用于接收某种action的广播接收器。

(5)动态注册需要在onDestroy()方法中取消注册

unregisterRecevier(BroadcastReceiver)

二、静态注册广播接收器

(1)与动态一样创建继承BroadcastRecevier的类并重写onReceiver()方法

(2)在注册表AndroidManifast.xml里添加注册代码

<receiver
android:name=“.xxx继承自BroadcaseRecevier类”
android:enable="true"
android:exported="true"
><intent-filter><action android:name="android.intent.action.XXX想要监听的action"></action></intent-filter></receiver>

  (3)其中enable是指是否启动这个广播接收器;exported:是否允许接收本程序以外的广播

二、静态注册与动态注册

动态注册可以自由控制注册与注销,但是必须要在程序将启动后才可以接收。而静态则可以监听。

在广播接收器中不要写太多操作,并且不能使用进程。

原文地址:https://www.cnblogs.com/ttnrt/p/11697806.html

时间: 2024-11-04 05:14:23

Android--静态广播和动态广播的区别的相关文章

静态广播与动态广播

静态广播与动态广播区别: 两者及其接收广播的区别: 1.动态注册的广播 永远要快于 静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低>\ 2.动态注册广播不是 常驻型广播 ,也就是说广播跟随activity的生命周期.注意: 在activity结束前,移除广播接收器. 静态注册是常驻型 ,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行. 3.在同一个优先级下,谁先启动的快,谁将先接收到广播. 动态注册代码: UpdateBroadcast  br

iOS 中的静态库与动态库,区别、制作和使用

如果我们有些功能要给别人用,但是又不想公开代码实现,比如高德地图.第三方登录分享等等,这时候我们就要打包成库了.库分静态库和动态库两种: 静态库:以.a 和 .framework为文件后缀名.动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名. 静态库与动态库的区别 静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多份拷贝.动态库:链接时不复制,程序运行时由系统动态加载到内存,系统只加载一次,多个程序共用(如系统的UIKit.framework等),节省内

静态库和动态库的区别

real framework中不可以使用类别 或 不可以不包含类文件 real framework 中直接调用NSClassFromString函数会返回null  需要强制加载指定类 或 直接通过类名引用 linux中静态库和动态库的区别 一.不同 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见

静态库、动态库的区别汇总

real framework中不可以使用类别 或 不可以不包含类文件 real framework 中直接调用NSClassFromString函数会返回null  需要强制加载指定类 或 直接通过类名引用 linux中静态库和动态库的区别 一.不同 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种. 1. 静态函数库 这类库的名字一般是libxxx.a:利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见

VS中Debug和Realease、及静态库和动态库的区别整理(转)

原文出自:http://www.cnblogs.com/chensu/p/5632486.html 一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码大小和运行速度上都是最优的,以便用户很好地使用. Debug 和 Release 的真正区别,在于一组编译选项. Debug 版本 参数 含义 /MDd /MLd 或 /MTd 使用 Debug ru

静态资源与动态资源的区别

静态资源:一般客户端发送请求到web服务器,web服务器从内存取到相应的文件,返回给客户端,客户端解析并渲染显示出来. 动态资源:一般客户端请求的动态资源,先将请求交于web容器,web容器连接数据库,数据库处理数据之后,将内容交给web服务器,web服务器返回给客户端解析渲染处理. 静态资源和动态资源的区别静态资源一般都是设计好的html页面,而动态资源依靠设计好的程序来实现按照需求的动态响应:静态资源的交互性差,动态资源可以根据需求自由实现:在服务器的运行状态不同,静态资源不需要与数据库参于

JSP页面静态包含和动态包含的区别与联系

---恢复内容开始--- JSP页面静态包含和动态包含的区别与联系: 1.<%@ include file=" " %> 是指令元素,<jsp:include page=" "/> 是行为元素. 2.静态包含: 语法:<%@ include file=" " %>, 包含文件先是要直接复制一份内容到主体页面内,然后被包含的内容一起和主体转换成.class文件.只出现一个.class文件一个java文件,最终编译

Android 静态广播和动态广播接收顺序

Android广播有两个很重要的要素: 1 广播 - 用于发送广播 有序广播  -  被广播接收器接收后,可被终止,无法往下继续传达.         典型代表:短信广播 普通广播  -  发送至每一个已经注册(订阅)的广播接收器,无法被终止. 典型代表:开机启动广播 2 广播接收器 - 用于订阅广播后接收广播 静态注册广播 - 在AndroidManifest.xml中设置,程序不用启动亦可接收. 典型代表:很多开机启动的APP,都是接收开机启动广播带起服务的. 动态注册广播 - 代码中注册广

Android广播之注册广播(包括静态广播和动态广播的注册)源码分析

Android广播按发送方式分类有三种:无序广播.有序广播(OrderedBroadcast)和粘性广播(StickyBroadcast). 静态广播的注册流程: 在系统服务启动时会添加PackageManagerService,在该类的构造方法中就会对各个应用安装目录的apk文件进行扫描解析.先看下时序图: 先看PackageManagerService类的构造方法: // Keys are String (package name), values are Package. This als

静态广播与动态广播的区别

1.动态注册的广播永远要快于静态注册的广播,不管静态注册的优先级设置的多高,不管动态注册的优先级有多低 2.生存期,静态广播的生存期可以比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,比如我们可以监听手机开机.而动态广播会随着context的终止而终止 3.动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态:而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明