Android--静态广播和动态广播的区别
Posted 按头写代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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:是否允许接收本程序以外的广播
二、静态注册与动态注册
动态注册可以自由控制注册与注销,但是必须要在程序将启动后才可以接收。而静态则可以监听。
在广播接收器中不要写太多操作,并且不能使用进程。
以上是关于Android--静态广播和动态广播的区别的主要内容,如果未能解决你的问题,请参考以下文章
BroadcastReceiver(广播)的静态注册和动态注册 --Android开发