Android之旅---广播(BroadCast)
Posted mfmdaoyou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之旅---广播(BroadCast)相关的知识,希望对你有一定的参考价值。
在android中。Broadcast是一种广泛运用的在应用程序之间传输信息的机制。
我们拿广播电台来做个例如。
我们寻常使用收音机收音是这种:许很多多不同的广播电台通过特定的频率来发送他们的内容。而我们用户仅仅须要将频率调成和广播电台的一样就能够收听他们的内容了。Android中的广播机制就和这个差点儿相同的道理。
电台发送的内容是语音,而在Android中我们要发送的广播内容是一个Intent。这个Intent中能够携带我们要传送的数据。
电台通过大功率的发射器发送内容,而在Android中则是通过sendBroadcast这种方法来发送(非常形象的名字吧)。
用户通过调整到详细的电台频率接受电台的内容。而在Android中要接受广播中的内容则是通过注冊一个BroadCastReceiver来接收的。
仅仅有发送广播的action和接收广播的action同样,接受者才干接受这个广播。
对了。笼统一点讲就是用来数据传输的。
详细一点说就是:
典型的应用就是android自带的短信,电话等等广播。仅仅要我们实现了他们的action的广播。那么我们就能接收他们的数据了,以便做出一些处理。
比方说拦截系统短信,拦截骚扰电话等等
如今我们就来实现一个简单的广播程序。
Android提供了两种注冊广播接受者的形式,各自是在程序中动态注冊和在xml中指定。他们之间的差别就是作用的范围不同。程序动态注冊的接收者仅仅在程序执行过程中有效。而在xml注冊的接收者无论你的程序有没有启动有会起作用。首先介绍在程序中动态注冊的方式。
动态注冊方式
我们在程序中设置了三个button。各自是“注冊广播”。“取消注冊”和“发送广播”。
然后每一个button设置点击事件来完毕广播的演示。
最简单的项目的建立过程和button事件的建立我再这里就不罗嗦了,不会的能够下载以下的DEMO源代码查看。直接看三个button的实现方式。
首先是注冊广播的button事件代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
private ReceiveBroadCast
receiveBroadCast; //广播实例 public class RegisteLinster
implements OnClickListener { @Override public void onClick(View
view) { //
注冊广播接收 receiveBroadCast
= new ReceiveBroadCast(); IntentFilter
filter = new IntentFilter(); filter.addAction(flag); //仅仅有持有同样的action的接受者才干接收此广播 registerReceiver(receiveBroadCast,
filter); } } public class ReceiveBroadCast
extends BroadcastReceiver { @Override public void onReceive(Context
context, Intent intent) |