`

Android4开发入门经典 之 第六部分:Broadcast

 
阅读更多

Broadcast基本概念

Broadcast是什么

是一种能在各个应用程序之间传递数据的机制。类似于现实中的广播体系,有广播方和接收方,双方的关系是多对多的,之间传递的就是Intent对象。
 

Broadcast能做什么

1:实现了不同的程序之间的数据传输与共享,比如我们的应用想要拦截到短信或电话,就可以接收相应的广播,然后进行处理。
2:起到了一个通知的作用,比如在service中要通知主程序,更新主程序的UI等。

Broadcast有什么

1:广播方,就是发出广播的应用
2:接收方,就是接收相应的广播信息并处理的应用
3:Intent对象,广播方和接收方传递数据的对象。
 

Broadcast Receiver示例

在广播方需要做两件事情:一是组织并封装Intent对象;二是发送广播。如下:


java代码:
  1. Intent in = new Intent();  
  2. in.setAction(Intent.ACTION_EDIT);  
  3. in.putExtra("broadcast""test");  
  4. HelloWorldActivity.this.sendBroadcast(in);  
  5. n在接收方需要继承BroadcastReceiver并做广播的相应处理  
  6. public class MyReceiver  extends BroadcastReceiver{  
  7. public void onReceive(Context context, Intent intent) {  
  8. if(intent.getAction().equals(Intent.ACTION_EDIT)){  
  9. Toast.makeText(context, "receiver-"+intent.getExtras().getString("broadcast"),Toast.LENGTH_SHORT).show();  
  10. }else{  
  11. Toast.makeText(context, "receiver-but not edit",Toast.LENGTH_SHORT).show();  
  12. }  
  13. }  
  14. }  

需要在配置文件AndroidManifest.xml中,在activity后,在application之前,注册receiver,同时配置intent-filter,示例如下:


java代码:
  1. <receiver android:name=".MyReceiver">  
  2. <intent-filter>  
  3. <action android:name="android.intent.action.EDIT"/>  
  4. </intent-filter>  
  5. </receiver>  
注意:使用这种方式注册的监听器,无论这个应用是否运行,都能够接收到相应的广播消息。

也可以通过程序来动态的注册receiver,同时配置intent-filter,这样就不需要在配置文件中配置了,示例如下:


java代码:
  1. IntentFilter intentFilter = new IntentFilter();  
  2. intentFilter.addAction(Intent.ACTION_EDIT);  
  3. HelloWorldActivity.this.registerReceiver(new MyReceiver(), intentFilter);  
要记得在发出广播前注册。
可以使用unregisterReceiver方法来取消注册。

接收短信示例

可以使用Broadcast Receiver来接收短信,示例如下:


java代码:
  1. 1:在AndroidManifest.xml中要注册权限:  
  2. <uses-permission android:name="android.permission.RECEIVE_SMS" />  
  3. 2:在MyReceiver上设置IntentFilter  
  4. <action android:name="android.provider.Telephony.SMS_RECEIVED"></action>  
  5. 3:在MyReceiver里面进行短信解析  
  6. Bundle b = intent.getExtras();  
  7. Object[] objs = (Object[])b.get("pdus");  
  8. SmsMessage [] ms = new SmsMessage[objs.length];  
  9.    
  10. for(int i=0;i<ms.length;i++){  
  11. ms[i] = SmsMessage.createFromPdu((byte[])objs[i]);  
  12. Toast.makeText(context.getApplicationContext(),"msg="+ms[i].getDisplayMessageBody(),Toast.LENGTH_SHORT).show();  
  13. }  
  14.    

Broadcast Receiver开发建议

Broadcast Receiver 的生命周期

Broadcast Receiver对象只在执行onReceive方法期间是有效的,每次执行完成,都会被销毁掉,下次接收广播的时候,又会重新创建Receiver对象。

系统内置的Broadcast Receiver可以接收的事件

可以在文档中Intent对象中查找,里面有一个“Standard Broadcast Actions”,这里面的就是可以在Broadcast中使用的。
要确保Intent的命名空间和类名是独有的,不会和其他应用的冲突
如果不希望其他的应用发送的广播被你的Receiver接收到,可以在Receiver上配置android:exported="false"
 


视频配套PPT,视频地址【 Android4开发入门经典独家视频课程
12
5
分享到:
评论

相关推荐

    Android开发入门经典

    第一部份 Android的入门基础 第二部份 Android应用核心基础知识 第三部份 理解Activity 第四部份 用户界面 第五部份 Service 第六部份 BroadCast Receiver 第七部份 数据存储 第八部份 数据库操作

    android一步一步最基础学习__新手

    第六讲:用户界面 View(二) AbsoluteLayout,RelativeLayout 第七讲:用户界面 View(三) TableLayout 第八讲:Intent入门指南 Intent 第九讲:用户界面 View(四) Button TextView EditView CheckBox 第十讲...

    android开发入门与实战(下)

    第6章 磨刀不误砍柴工——Android应用程序结构介绍 6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序...

    android开发入门与实战(上)

    第6章 磨刀不误砍柴工——Android应用程序结构介绍 6.1 Android体系结构介绍 6.1.1 应用程序(Application) 6.1.2 应用程序框架(ApplicationFramework) 6.1.3 库(Libraries)和运行环境(RunTime) 6.2 Android应用程序...

    《Google Android开发入门与实战》.pdf

    第6章 磨刀不误砍柴工——android应用程序结构介绍 57 6.1 android体系结构介绍 57 6.1.1 应用程序(application) 57 6.1.2 应用程序框架(application framework) 58 6.1.3 库(libraries)和运行环境...

    Google.Android开发入门与实战

     《Android开发入门与实战》内容上涵盖了用Android开发的大部分场景,从Android基础介绍、环境搭建、SDK介绍、Market使用,到应用剖析、组件介绍、实例演示等方面。从技术实现上,讲解了5个Android平台下的完整综合...

    Android高薪之路:Android程序员面试宝典 李宁

    第6章 数据库 6 1 SQLite基础知识 6 2 SQLite 函数 6 2 1 核心函数 6 2 2 日期和时间函数 6 2 3 聚合函数 6 3 在Android中使用SQLite 6 4 面向对象数据库:db4o 第7章 网络与加密 7 1 客户端Socket 7 2 服务端Socket...

    Google Android开发入门与实战.part2.rar

    一次只能传15MB,书太大,分三部分,第二部分 共17章 1、初识android 2、搭建android开发环境 3、androidSDK介绍 4、android market及应用发布 5、第一个应用Hello World 6、android应用程序结构介绍 7、良好的学习...

    Google Android开发入门与实战.part3.rar

    一次只能传15MB,书太大,分三部分,第三部分 共17章 1、初识android 2、搭建android开发环境 3、androidSDK介绍 4、android market及应用发布 5、第一个应用Hello World 6、android应用程序结构介绍 7、良好的学习...

    android开发入门教程

    第9章 我来“广播”你的“意图”——Intent和Broadcast面对面 9.1 Android应用程序的核心——Intent 9.1.1 Intent基础 9.1.2 用Intent启动一个新的Activity 9.1.3 Intent详细讲解 9.1.4 Android解析Intent实现 9.2 ...

    老罗android开发视频教程全集百度网盘下载

    【第一版第六章】老罗Android开发视频--服务器端JDBC编程(2集) 【第一版第七章】老罗Android开发视频--服务器端Web编程(6集) 【第一版第八章】老罗Android开发视频-常用UI控件(33集) 【第一版第九章】老罗...

    Android入门.doc

    3. 第一个 Android 应用程序的开发:HelloWorld 第一步:新建 Android 项目 第二步:启动 Android 模拟器 第三步:部署 HelloWorld 应用程序到模拟器并运行 增加一个按钮,按钮显示的文字是“世界,你好” 4. ...

    Google Android开发入门与实战.part1.rar

    一次只能传15MB,书太大,分三部分 共17章 1、初识android 2、搭建android开发环境 3、androidSDK介绍 4、android market及应用发布 5、第一个应用Hello World 6、android应用程序结构介绍 7、良好的学习开端 8、...

    Android入门到精通源代码.

    第6章 Android菜单和布局设计 6.1 菜单(Menu) 6.1.1 上下文菜单(ContextMenu) 6.1.2 选项菜单(OptionsMenu) 6.1.3 基于XML的菜单结构 6.2 界面布局设计 6.2.1 基于XML的布局设计 6.2.2 线性布局(LinearLayout...

    Google Android开发入门与实战的代码

    第6章 磨刀不误砍柴工——Android应用程序结构介绍 57 6.1 Android体系结构介绍 57 6.1.1 应用程序(Application) 57 6.1.2 应用程序框架(Application Framework) 58 6.1.3 库(Libraries)和运行环境...

    Google Android开发入门实战 pdf 和 实例代码.part3

    第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成部分,让读者搞清楚整个程序是怎么组成,怎么运作的。通过本章学习,使得读者可以比较清楚地了解Android系统的架构组成部分。 第7章 良好的...

    Google Android开发入门实战 pdf 和 实例代码.part2

    第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成部分,让读者搞清楚整个程序是怎么组成,怎么运作的。通过本章学习,使得读者可以比较清楚地了解Android系统的架构组成部分。 第7章 良好的...

    Google Android开发入门实战 pdf 和 实例代码.part1

    第6章 磨刀不误砍柴工—Android应用程序结构介绍。介绍了Android程序的组成部分,让读者搞清楚整个程序是怎么组成,怎么运作的。通过本章学习,使得读者可以比较清楚地了解Android系统的架构组成部分。 第7章 良好的...

    android开发秘籍

    第6 章 多媒体技术 122 6.1 图像 123 6.2 音频 128 6.2.1 秘诀51:选取和播放音频文件 128 6.2.2 秘诀52:录制音频文件 131 6.2.3 秘诀53:处理原始音频 132 6.2.4 秘诀54:有效使用音频资源 136 6.2.5 秘诀55...

Global site tag (gtag.js) - Google Analytics