Android 中动态广播接收器和静态广播接收器的使用
2017-04-01 15:32
706 查看
前段时间因为项目需求,用到了Android基础的广播接收机制,简要做点总结
1.静态广播
静态广播需要在AndroidManifest.xml中进行声明,而且不针对特定的页面,任何页面都能收到广播消息。
注册用例如下:
静态广播接收的使用如下:
2. 动态广播
注册用例如下:本例选择在Activity的onCreate()函数中进行注册
动态广播注册之后需要销毁,本例选择在onPause()函数中销毁
动态广播接收的使用如下:
3.动态广播接收器和静态广播接收器的比较
生存期:静态广播的生存期比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,而动态广播会随着context的终止而终止
优先级:动态广播的优先级比静态广播高
动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态;而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明
1.静态广播
静态广播需要在AndroidManifest.xml中进行声明,而且不针对特定的页面,任何页面都能收到广播消息。
注册用例如下:
<receiver android:name=".ui.balance.broadcastReceiver.WeighBroadcast"> //广播名 <intent-filter> <action android:name="XXXXX"/> //广播消息注册 </intent-filter> </receiver>
静态广播接收的使用如下:
public class WeighBroadcast extends BroadcastReceiver { //定义广播接收器 private static int NOTIFY_ID = 1000; private static final String tag = "NotificationReceiver"; @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "Boot Complete", Toast.LENGTH_SHORT).show(); //收到广播之后需要执行的命令 // }
2. 动态广播
注册用例如下:本例选择在Activity的onCreate()函数中进行注册
myBroadcastReceiver = new MyBroadcastReceiver(); //广播类的创建 intentFilter1 = new IntentFilter(); intentFilter1.addAction(XXXXX); //动态注册广播 registerReceiver(myBroadcastReceiver, intentFilter1);
动态广播注册之后需要销毁,本例选择在onPause()函数中销毁
@Override public void onPause() { super.onPause(); // unregisterReceiver(changeReceiver); unregisterReceiver(myBroadcastReceiver); //注销动态广播接收器 // unregisterReceiver(dataBroadcastReceiver); }
动态广播接收的使用如下:
class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // Toast.makeText(context, "Boot Complete", Toast.LENGTH_SHORT).show(); //接收广播消息后需要执行的命令 } }
3.动态广播接收器和静态广播接收器的比较
生存期:静态广播的生存期比动态广播的长很多,因为静态广播很多都是用来对系统时间进行监听,而动态广播会随着context的终止而终止
优先级:动态广播的优先级比静态广播高
动态广播无需在AndroidManifest.xml中声明即可直接使用,也即动态;而静态广播则需要,有时候还要在AndroidManifest.xml中加上一些权限的声明
相关文章推荐
- android 注册静态广播接收器VS注册动态广播接收器
- Android中广播的使用(动态、静态注册的区别,有序无序广播的使用)
- android中广播的使用(动态和静态注册)
- Android进阶之路 - BroadcaseReceiver(自定义广播、有序广播、无序广播、广播拦截、动态注册、静态注册)的详细使用方式
- Android使用Broadcast实现无序静态与动态广播功能
- Android 为什么动态广播接收器比静态广播接收器要接受的早
- Android动态注册广播接收器
- 【Android】动态注册广播接收器
- 【Android】动态注册广播接收器
- Android笔记(二十七) Android中的动态广播和静态广播
- [Android] 使用广播接收器Braodcast Receiver 监听手机来电 去电 挂断的事
- Android中的静态系统广播和动态系统广播
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- BroadcastReceiver 广播的使用 (activity广播到fragment中,使用静态的没有成功,我就使用动态的 ,是可以的)
- Android中的静态系统广播和动态系统广播
- 【Android开发学习44】android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- android: 静态XML和动态加载XML混合使用,以及重写Layout控件
- android 4.4 动态注册+静态注册电话短信广播后收到两次onReceive回调的问题
- Android组件- 广播的静态动态有序无序与优先级