`

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应用开发。如果你对Android开发感兴趣,这无疑是一份值得深入学习的...

    Android应用开发入门教程(经典版).pdf

    ### Android应用开发入门教程知识点概览 #### 一、Android系统结构与SDK使用 ##### 1.1 系统介绍 - **Android** 是一个基于Linux内核的开放源代码移动操作系统,它由Google公司领导并支持。Android系统的设计目标...

    android开发入门教程PDF(两部)

    这两部PDF教程,"Android开发入门教程"和"Android手机程序电子书开发",都是针对初学者精心编写的指南,旨在帮助他们快速理解和掌握Android应用开发的基础知识。 首先,"Android开发入门教程"可能涵盖了以下几个...

    Android开发入门经典

    ### Android开发入门经典知识点概述 #### 一、Android的基础概念 - **定义**: Android是一种基于Linux内核的开源操作系统,主要用于移动设备。 - **特点**: - 开源性:任何人都可以自由使用并修改其源代码。 - ...

    android 从入门到精通电子书

    《Android从入门到精通》是一本专为初学者设计的Android开发指南,旨在帮助读者全面了解并掌握Android应用开发的基本技能。这本书详细介绍了Android开发环境的搭建、Android应用程序的基础架构、UI设计、数据存储、...

    Android开发从入门到精通

    ### Android开发从入门到精通 #### 一、Android概述与发展历程 **Android**是一种基于Linux V2.6内核的综合操作环境,最初由Andy Rubin创立,并于2005年被Google收购。该系统的设计初衷是针对移动电话领域,包括...

    android开发从入门到精通随书源码2-6章

    这份"android开发从入门到精通随书源码2-6章"的压缩包文件为我们提供了宝贵的实践资源,帮助开发者深入理解Android应用开发的核心概念和技术。下面将详细解析其中涉及的主要知识点。 第一章通常会介绍Android开发...

    Android开发入门介绍

    ### Android开发入门介绍 在移动互联网时代,Android作为全球最大的移动操作系统之一,其应用开发的重要性不言而喻。本文将围绕“Android开发入门介绍”这一主题展开,旨在为初学者提供一个全面的基础知识体系,...

    Android开发入门与实战源码

    首先,我们来看"Android开发入门"这部分。入门阶段,开发者通常需要了解Android系统的基本结构,包括Activity(活动)、Intent(意图)、Service(服务)、Broadcast Receiver(广播接收器)以及Content Provider...

    Android开发入门书籍

    **1.4 检查第一个项目(Chapter 4: Examining Your First Project)** - **知识点:** - 分析主Activity代码 - 布局文件解析 - 使用资源(字符串、图片等) - 基础事件处理 **1.5 关于Eclipse(Chapter 5: A ...

    android开发入门教程

    Android开发入门教程旨在帮助初学者快速掌握Android应用开发的基本技能,构建自己的第一个应用程序。这个教程将涵盖以下几个核心知识点: 1. **环境配置**:首先,你需要安装Java Development Kit (JDK) 和Android ...

    android 开发入门教程 从配置环境开始

    Android开发入门教程从配置环境开始,是一套针对初学者精心设计的教程,旨在帮助零基础的学员快速掌握Android应用开发的基础知识。本教程分为十二个章节,内容涵盖全面,逐步引导学习者进入Android开发的世界。 第...

    Google.Android开发入门与实战

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

    《Android项目驱动式开发教程》第一章开发入门.pptx

    【Android项目驱动式开发教程】第一章主要介绍了...总结起来,本章主要介绍了Android的发展历程,核心组成部分,以及搭建Android开发环境和创建第一个应用的基础步骤。对于初学者来说,这是了解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、良好的学习...

Global site tag (gtag.js) - Google Analytics