三种广播,以及广播接收器的注册方式
2017-06-07 16:40
393 查看
广播有三种:
1.普通广播,只是普通的广播,接受顺序按配置的优先级接受,只有注册了对应的过滤器的接收器才能接受。
2.有序广播,接受顺序按配置的优先级接受,只有注册了对应的过滤器的接收器才能接受,接收器可以截断广播,排在后面的接收器接收不到广播。
3.粘性广播,已经被弃用了,广播发送后一直留在AMS中,即使是在粘性广播发送后再注册的接收器还是可以接收到粘性广播,这样的话该广播是不会停止的,只要伴随着注册接收器,广播仍然有效。
使用方法:
发送:
把信息装入一个Intent对象(如:Action、Category),通过调相应的方法将Intent对象以广播的方式发送出去:
sendBroadcast();
sendOrederBroadcast();
sendStickyBroadcast();
接收:
当Intent发送之后,所有已经注册receivedBroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceiver()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceiver()方法。
注意:
BroadcastReceiver需要注册
静态注册 :静态注册的广播接收器在app没有启动的情况下也可以接收到对应的广播,android:name属性代表的是接收器类。
代码动态注册:动态注册的广播接收器的声明周期同上下文周期相同,记得代码注册完,在上下文停止销毁之前注销接收器。
1.普通广播,只是普通的广播,接受顺序按配置的优先级接受,只有注册了对应的过滤器的接收器才能接受。
2.有序广播,接受顺序按配置的优先级接受,只有注册了对应的过滤器的接收器才能接受,接收器可以截断广播,排在后面的接收器接收不到广播。
3.粘性广播,已经被弃用了,广播发送后一直留在AMS中,即使是在粘性广播发送后再注册的接收器还是可以接收到粘性广播,这样的话该广播是不会停止的,只要伴随着注册接收器,广播仍然有效。
使用方法:
发送:
把信息装入一个Intent对象(如:Action、Category),通过调相应的方法将Intent对象以广播的方式发送出去:
sendBroadcast();
sendOrederBroadcast();
sendStickyBroadcast();
接收:
当Intent发送之后,所有已经注册receivedBroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceiver()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceiver()方法。
注意:
BroadcastReceiver需要注册
静态注册 :静态注册的广播接收器在app没有启动的情况下也可以接收到对应的广播,android:name属性代表的是接收器类。
代码动态注册:动态注册的广播接收器的声明周期同上下文周期相同,记得代码注册完,在上下文停止销毁之前注销接收器。
Manifest.xml文件中(静态注册): //静态注册,全局有效 <receiverandroid:name=".MyReiceiver"> //MyReiceiver是广播接收器类继承子BroadcastReceiver <intent-filterandroid:priority="10">//添加级别 <actionandroid:name="com.example.testbroadcasetwo.bcone" /> </intent-filter> </receiver>
Activity中动态注册: MyReiceiverThree myReiceiver = new MyReiceiverThree(); @Override public void onStart(){ IntentFilter filter =new IntentFilter(Config.BC_THREE_ACTION); registerReceiver(myReiceiver, filter); } @Override protectedvoidonDestroy() { super.onDestroy(); unregisterReceiver(myReiceiver); }
相关文章推荐
- Android学习总结(五)———— BroadcastReceiver(广播接收器)的基本概念和两种注册广播方式
- RocketMQ专题2:三种常用生产消费方式(顺序、广播、定时)以及顺序消费源码探究
- 注册JDBC驱动的三种方式
- axis和xfire以及CXF三种方式实现WebServices分别有什么优缺
- Android应用程序注册广播接收器(registerReceiver)的过程分析
- android注册广播的两种方式及优缺点
- WebSocket不同版本的三种握手方式以及一个Netty实现JAVA类
- Struts注册Spring Context的三种方式
- Android应用程序注册广播接收器registerReceiver
- WebSocket不同版本的三种握手方式以及一个Netty实现JAVA类
- JDBC 三种方式注册数据库驱动(转载)
- 【Android】一步注册广播接收器
- 调用Remoting的两种激活方式和以及因此而产生的三种.net Remoting对象
- Android应用程序注册广播接收器(registerReceiver)的过程分析
- ASP.NET中注册客户端脚本的三种方式
- Service两种不同的调用方式以及BroadcastReceiver两种不同的注册方式
- 各种数据库JDBC驱动加载注册方式以及建立连接时的URL字符串
- day21 jdbc中涉及到知识点 jdbc编程步骤 jdbc注册驱动的三种方式
- Android应用程序注册广播接收器(registerReceiver)的过程分析
- 关于AndroidManifest里注册广播接收器