`
trygood
  • 浏览: 79124 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Broadcast Receiver 

阅读更多
一、Broadcast Receiver简介
Android中的四大组件是 Activity、Service、Broadcast和Content Provider。而Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么Broadcast Receiver组件就提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。
二、Broadcast Receiver接收系统自带的广播
我们做一个例子,功能是在系统启动时播放一首音乐。
1、建立一个项目Lesson21_BroadcastReceiver,拷贝一首音乐进res/raw目录
2、建立HelloBroadcastReceiver.java 内容如下:
01 package android.basic.lesson21;
02
03 import android.content.BroadcastReceiver;
04 import android.content.Context;
05 import android.content.Intent;
06 import android.media.MediaPlayer;
07 import android.util.Log;
08
09 public class HelloBroadReciever extends BroadcastReceiver {
10
11     //如果接收的事件发生
12     @Override
13     public void onReceive(Context context, Intent intent) {
14         //则输出日志
15         Log.e("HelloBroadReciever", "BOOT_COMPLETED!!!!!!!!!!!!!!!!!!!!!!!!!");
16         Log.e("HelloBroadReciever", ""+intent.getAction());
17
18         //则播放一首音乐
19         MediaPlayer.create(context, R.raw.babayetu).start();
20     }
21 }
3、在AndroidManifest.xml中注册此Receiver :
01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"android:versionname="1.0" android:versioncode="1" package="android.basic.lesson21">
03     <application android:icon="@drawable/icon" android:label="@string/app_name">
04         <activity android:label="@string/app_name"android:name=".MainBroadcastReceiver">
05             <intent -filter="">
06                 <action android:name="android.intent.action.MAIN">
07                 <category android:name="android.intent.category.LAUNCHER">
08             </category></action></intent>
09         </activity>
10     <!-- 定义Broadcast Receiver 指定监听的Action -->
11     <receiver android:name="HelloBroadReciever">
12             <intent -filter="">
13                 <action android:name="android.intent.action.BOOT_COMPLETED">
14             </action></intent>
15     </receiver>
16 </application></manifest>
4、发布程序,启动模拟器,可以在Logcat中看到:





同时能听到音乐播放的声音。说明我们确实接收到了系统启动的广播事件,并做出了响应。

三、自定义广播
下面我们学习自己制作一个广播。我们接着刚才的例子,继续写下去。
5、在MainBroadcastReceiver.java中填写如下代码:
01 package android.basic.lesson21;
02
03 import android.app.Activity;
04 import android.content.Intent;
05 import android.os.Bundle;
06 import android.view.View;
07 import android.widget.Button;
08
09 public class MainBroadcastReceiver extends Activity {
10     /** Called when the activity is first created. */
11     @Override
12     public void onCreate(Bundle savedInstanceState) {
13         super.onCreate(savedInstanceState);
14         setContentView(R.layout.main);
15
16         Button b1 = (Button) findViewById(R.id.Button01);
17
18         b1.setOnClickListener(new View.OnClickListener() {
19
20             @Override
21             public void onClick(View v) {
22                 //定义一个intent
23                 Intent intent = new Intent().setAction(
24                         "android.basic.lesson21.Hello").putExtra("yaoyao",
25                         "yaoyao is 189 days old ,27 weeks -- 2010-08-10");
26                 //广播出去
27                 sendBroadcast(intent);
28             }
29         });
30     }
31 }
6、更改 HelloBroadReceiver.java 内容如下:
01 package android.basic.lesson21;
02
03 import android.content.BroadcastReceiver;
04 import android.content.Context;
05 import android.content.Intent;
06 import android.media.MediaPlayer;
07 import android.util.Log;
08
09 public class HelloBroadReciever extends BroadcastReceiver {
10
11     //如果接收的事件发生
12     @Override
13     public void onReceive(Context context, Intent intent) {
14         //对比Action决定输出什么信息
15         if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){
16             Log.e("HelloBroadReciever", "BOOT_COMPLETED !!!!!!!!!!!!!!!!!!!!!!!!!");
17         }
18
19         if(intent.getAction().equals("android.basic.lesson21.Hello")){
20             Log.e("HelloBroadReciever", "Say Hello to Yaoyao !!!!!!!!!!!!!!!!!!!!!!!!!");
21             Log.e("HelloBroadReciever", intent.getStringExtra("yaoyao"));
22         }
23
24         //播放一首音乐
25         MediaPlayer.create(context, R.raw.babayetu).start();
26     }
27 }
7、更改 AndroidManifest.xml 内容如下:
01 <?xml version="1.0" encoding="utf-8"?>
02 <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="android.basic.lesson21" android:versionname="1.0" android:versioncode="1">
03     <application android:icon="@drawable/icon" android:label="@string/app_name">
04         <activity android:label="@string/app_name"android:name=".MainBroadcastReceiver">
05             <intent -filter="">
06                 <action android:name="android.intent.action.MAIN">
07                 <category android:name="android.intent.category.LAUNCHER">
08             </category></action></intent>
09         </activity>
10     <!-- 定义Broadcast Receiver 指定监听的Action 这里我们的接收器,接收了2个Action,一个系统的一个我们自定义的  -->
11     <receiver android:name="HelloBroadReciever">
12             <intent -filter="">
13                 <action android:name="android.intent.action.BOOT_COMPLETED">
14             </action></intent>
15             <intent -filter="">
16                 <action android:name="android.basic.lesson21.HelloYaoYao">
17             </action></intent>
18
19     </receiver>
20 </application>
21 <uses -sdk="" android:minsdkversion="8">
22 </uses></manifest>
8、运行程序,点击按钮,查看LogCat,听听声音






  • 大小: 41.2 KB
  • 大小: 311.3 KB
  • 大小: 169.8 KB
  • 大小: 33.9 KB
分享到:
评论

相关推荐

    四大组件 Activity Service content provider broadcast receiver

    ### 四大组件详解:Activity、Service、Content Provider与Broadcast Receiver #### 一、Activity **定义:** Activity是Android应用程序中的四大基本组件之一,它代表一个屏幕界面,用户可以直接与其进行交互。每...

    Broadcast Receiver Demo

    在Android开发中,四大组件是Activity、Service、Content Provider以及我们这里关注的Broadcast Receiver(广播接收器)。Broadcast Receiver是Android系统中的一个重要组成部分,它允许应用程序在后台接收并响应...

    利用广播Broadcast Receiver,在2个不同的Activity传递数据

    通过创建BroadcastReceiver,注册它,发送Broadcast,以及在接收端处理数据,我们可以轻松地在两个不同的Activity之间传递信息。注意,为了优化资源使用,记得在适当的时候注销BroadcastReceiver。

    第八章_Android广播事件处理Broadcast_Receiver

    ### 第八章 Android广播事件处理Broadcast Receiver #### 知识点一:理解Broadcast Receiver的作用与意义 在Android应用开发过程中,Broadcast Receiver是一种重要的组件,它主要用于接收来自系统或其他应用程序...

    Android新手Broadcast Receiver简单实现

    本教程将引导Android新手一步步实现Broadcast Receiver。 首先,我们需要创建一个新的BroadcastReceiver类。在Android Studio中,可以在项目结构中选择“New” -&gt; “Java Class”,然后命名为“MyBroadcastReceiver...

    本示例 利用Broadcast Receiver 启动Service

    &lt;receiver android:name=".StartupBroadcastReceiver"&gt; &lt;/receiver&gt; ``` 3. 发送广播:在适当的时候,例如应用程序启动时,发送一个带有“com.example.START_SERVICE”动作的广播,触发BroadcastReceiver。 ...

    Android课程设计-记事本(Activity,Service,Broadcast Receiver,Provider)实现

    本项目“Android课程设计-记事本(Activity, Service, Broadcast Receiver, Provider)实现”即是在这样的背景下提出的,旨在通过一个记事本应用的设计与开发,使学生能够综合运用Android的四大组件:Activity、...

    广播接受者(Broadcast Receiver)

    广播接收者(Broadcast Receiver)是Android系统中的一个重要组件,它允许应用程序在后台接收并响应系统或应用程序广播事件。广播事件可以是系统级别的,如设备启动、网络状态改变,也可以是应用自定义的,用于在...

    android的Broadcast Receiver应用机制

    ### Android的Broadcast Receiver应用机制 #### 一、BroadcastReceiver简介 在Android开发中,四大核心组件包括:Activity、Service、BroadcastReceiver以及Content Provider。其中,BroadcastReceiver是一种特殊...

    android-simple-broadcast-receiver-app:简单的Android Broadcast Receiver使用示例

    在Android开发中,Broadcast Receiver(广播接收者)是四大组件之一,它负责监听系统或应用程序发送的广播消息,并在接收到这些消息时执行相应的操作。本项目“android-simple-broadcast-receiver-app”提供了一个...

    Android四大组件之Broadcast Receiver

    文章目录Android四大组件之Broadcast Receiver概述广播接收器(Broadcast Receiver)Broadcast Receiver简介Broadcast Receiver的注册一. 静态注册二. 动态注册三. 本地广播发送Broadcast Receiver广播的三种发送...

    Broadcast_Receiver_Example

    Broadcast_Receiver_Example 是一个基于Android平台的项目,主要展示了如何使用Broadcast Receiver这一核心组件。Broadcast Receiver(广播接收器)是Android四大组件之一,用于接收系统或应用广播事件,即使应用在...

    android broadcast的使用

    Broadcast Receiver(广播接收者)是Android四大组件之一,专门用来接收并响应系统或自定义广播事件。本教程将深入探讨Android广播的使用,适合初学者入门。 首先,我们需要了解Broadcast Receiver的基本概念。...

    Broadcast_Receiver

    wendang Broadcast_Receiver

    时间计时器

    【时间计时器】是一款基于Android Studio开发的应用,它整合了Broadcast Receiver(广播接收者)和服务(Service)等核心组件,以实现精准的时间管理功能。在Android应用开发中,理解和掌握这些知识点至关重要,因为...

    Android实例四:BroadCast_Receiver

    这篇博客"Android实例四:BroadCast_Receiver"将深入探讨如何在实际项目中使用BroadcastReceiver。 首先,我们需要了解BroadcastReceiver的基本概念。BroadcastReceiver是一个抽象类,用于接收并处理系统或应用广播...

    Android系统中的广播Broadcast,Receiver例子

    Android系统中的广播Broadcast,Receiver例子,可以用LogCat察看整个运行的生命周期.MainActivity界面上有两个按钮,分别是Start Counter和Stop Counter按钮,点击前者开始计数,而点击后者则停止计数。

    Android 学习(26)Intent 分类

    本篇文章将深入探讨Intent的分类及其在Android应用中的作用,同时也会提及Broadcast Receiver,它是Android系统中处理全局广播的重要组件。 首先,我们来看Intent的两大分类:显式Intent和隐式Intent。 1. **显式...

    Android应用:Broadcast的Sender和Receiver

    Android源代码 ...工程2:Broadcast的Receiver,负责监听广播(2种注册方式:XML和代码动态注册),一旦监听到广播,弹出Activity,并显示广播携带的数据。 本代码含金量很高哦,简单而直观解决了程序间的通信!

    Android开发应用中Broadcast Receiver组件详解

    下面就具体介绍一下Broadcast Receiver组件的用法。 下面是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,...

Global site tag (gtag.js) - Google Analytics