动态广播和静态广播的区别:

1.动态注册广播不是常驻型广播,也就是说广播跟随activity的生命周期。注意: activity结束前,移除广播接收器。

 静态注册是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。

 

 2.当广播为有序广播时:

          1 优先级高的先接收

          2 同优先级的广播接收器,动态优先于静态

          3 同优先级的同类广播接收器,静态:先扫描的优先于后扫描的,动态:先注册的优先于后注册的。

  

3当广播为普通广播时:

         1 无视优先级,动态广播接收器优先于静态广播接收器

         2 同优先级的同类广播接收器,静态:先扫描的优先于后扫描的,动态:先注册的优先于后注册的。

 

一.常驻型广播(静态注册)

 常驻型广播,这个广播接收者会在程序运行的整个过程中一直存在,不会被注销掉,当程序被杀掉后不会再接收到广播了。它的注册方式就是在你应用程序的AndroidManifast.xml 中进行注册,这种注册方式通常又被称作静态注册。这种方式可以理解为通过清单文件注册的广播是交给操作系统去处理的。在Manifest.xml中注册广播,是一种比较推荐的方法,因为它不需要手动注销广播(如果广播未注销,程序退出时可能会出错)。 

 

非常驻型广播(动态注册)
非常驻型广播,是通过代码注册广播接收者的一种形式。代码注册时可以将广播接收者作为一个内部类写在Activity中,也可以重新写一个类继承自BroadCastReceiver,需要用代码注册(注册广播可以写在任意的地方,只有注册的广播接收者才能收到对应的广播),比如在 Activity 中的 onCreate 或者 onResume 中注册广播接收者,在 onDestory 中注销广播接收者。这样你的广播接收者就一个非常驻型的了,这种注册方式也叫动态注册。这种方式可以理解为通过代码注册的广播是和注册者关联在一起的。

 

你可能感兴趣的:(动态广播和静态广播的区别:)