Android之旅---广播(BroadCast)

Posted mfmdaoyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之旅---广播(BroadCast)相关的知识,希望对你有一定的参考价值。


什么是广播

         在android中。Broadcast是一种广泛运用的在应用程序之间传输信息的机制。

我们拿广播电台来做个例如。

我们寻常使用收音机收音是这种:许很多多不同的广播电台通过特定的频率来发送他们的内容。而我们用户仅仅须要将频率调成和广播电台的一样就能够收听他们的内容了。Android中的广播机制就和这个差点儿相同的道理。

电台发送的内容是语音,而在Android中我们要发送的广播内容是一个Intent。这个Intent中能够携带我们要传送的数据。

电台通过大功率的发射器发送内容,而在Android中则是通过sendBroadcast这种方法来发送(非常形象的名字吧)。       

用户通过调整到详细的电台频率接受电台的内容。

而在Android中要接受广播中的内容则是通过注冊一个BroadCastReceiver来接收的。

仅仅有发送广播的action和接收广播的action同样,接受者才干接受这个广播。

广播有什么用
     事实上,在什么是广播的第一句就已经说明了广播有什么用了。

对了。笼统一点讲就是用来数据传输的。

详细一点说就是:

 
 
   
1.实现了不同的程序之间的传输数据与共享。由于仅仅要是和发送广播的action同样的接受者都能接受这个广播。

典型的应用就是android自带的短信,电话等等广播。仅仅要我们实现了他们的action的广播。那么我们就能接收他们的数据了,以便做出一些处理。

比方说拦截系统短信,拦截骚扰电话等等

 
2.起到了一个通知的作用,比方在service中要通知主程序,更新主程序的UI等。由于service是没有界面的,所以不能直接获得主程序中的控件。这样我们就仅仅能在主程序中实现一个广播接受者专门用来接受service发过来的数据和通知了。

实现广播

         如今我们就来实现一个简单的广播程序。

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)

(c)2006-2024 SYSTEM All Rights Reserved IT常识