Android Broadcast Receiver 使用入门

Broadcast Receiver
的使用
        1、Broadcast
Receiver简介
        2、Broadcast
Receiver接收系统自带的广播
    
   3、自定义广播

    
   一、Broadcast Receiver简介
 
      Android中的四大组件是 Activity、Service、Broadcast和Content
Provider。而Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递。那么Broadcast
Receiver组件就提供了一种把Intent作为一个消息广播出去,由所有对其感兴趣的程序对其作出反应的机制。

 
     二、Broadcast Receiver接收系统自带的广播

 
     我们做一个例子,功能是在系统启动时播放一首音乐。
    
 
1、建立一个项目Lesson21_BroadcastReceiver,拷贝一首音乐进res/raw目录
 
     2、建立HelloBroadcastReceiver.java
内容如下:

java代码:

  1. package android.demo;
  2. import android.content.BroadcastReceiver;

  3. import android.content.Context;

  4. import android.content.Intent;

  5. import android.media.MediaPlayer;

  6. import android.util.Log;
  7. public class HelloBroadReciever extends BroadcastReceiver {
  8. //如果接收的事件发生

  9. @Override

  10. public void onReceive(Context context, Intent intent) {

  11. //则输出日志

  12. Log.e("HelloBroadReciever",
    "BOOT_COMPLETED!!!!!!!!!!!!!!!!!!!!!!!!!");

  13. Log.e("HelloBroadReciever", ""+intent.getAction());
  14. //则播放一首音乐

  15. MediaPlayer.create(context, R.raw.babayetu).start();

  16. }

  17. }

复制代码

3、在AndroidManifest.xml中注册此Receiver


java代码:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionname="1.0" android:versioncode="1"
    package="android.basic.lesson21">

  3. <application android:icon="@drawable/icon"
    android:label="@string/app_name">

  4. <activity android:label="@string/app_name"
    android:name=".MainBroadcastReceiver">

  5. <intent -filter="">

  6. <action android:name="android.intent.action.MAIN">

  7. <category android:name="android.intent.category.LAUNCHER">

  8. </category></action></intent>

  9. </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、在MainBroadcastReceiver.java中填写如下代码:

java代码:

  1. package android.demo;
  2. import android.app.Activity;

  3. import android.content.Intent;

  4. import android.os.Bundle;

  5. import android.view.View;

  6. import android.widget.Button;
  7. public class MainBroadcastReceiver extends Activity {

  8. /** Called when the activity is first created. */

  9. @Override

  10. public void onCreate(Bundle savedInstanceState) {

  11. super.onCreate(savedInstanceState);

  12. setContentView(R.layout.main);
  13. Button b1 = (Button) findViewById(R.id.Button01);
  14. b1.setOnClickListener(new View.OnClickListener() {
  15. @Override

  16. public void onClick(View v) {

  17. //定义一个intent

  18. Intent intent = new Intent().setAction(

  19. "android.basic.lesson21.Hello").putExtra("yaoyao",

  20. "yaoyao is 189 days old ,27 weeks -- 2010-08-10");

  21. //广播出去

  22. sendBroadcast(intent);

  23. }

  24. });

  25. }

  26. }

复制代码

5、更改 HelloBroadReceiver.java
内容如下:

java代码:

  1. package android.demo;
  2. import android.content.BroadcastReceiver;

  3. import android.content.Context;

  4. import android.content.Intent;

  5. import android.media.MediaPlayer;

  6. import android.util.Log;
  7. public class HelloBroadReciever extends BroadcastReceiver {
  8. //如果接收的事件发生

  9. @Override

  10. public void onReceive(Context context, Intent intent) {

  11. //对比Action决定输出什么信息

  12. if(intent.getAction().equals("android.intent.action.BOOT_COMPLETED")){

  13. Log.e("HelloBroadReciever", "BOOT_COMPLETED
    !!!!!!!!!!!!!!!!!!!!!!!!!");

  14. }
  15. if(intent.getAction().equals("android.basic.lesson21.Hello")){

  16. Log.e("HelloBroadReciever", "Say Hello to Yaoyao
    !!!!!!!!!!!!!!!!!!!!!!!!!");

  17. Log.e("HelloBroadReciever", intent.getStringExtra("yaoyao"));

  18. }
  19. //播放一首音乐

  20. MediaPlayer.create(context, R.raw.babayetu).start();

  21. }

  22. }

复制代码

6、更改 AndroidManifest.xml
内容如下:

java代码:

  1. <?xml version="1.0" encoding="utf-8"?>

  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="android.basic.lesson21" android:versionname="1.0"
    android:versioncode="1">

  3. <application android:icon="@drawable/icon"
    android:label="@string/app_name">

  4. <activity android:label="@string/app_name"
    android:name=".MainBroadcastReceiver">

  5. <intent -filter="">

  6. <action android:name="android.intent.action.MAIN">

  7. <category android:name="android.intent.category.LAUNCHER">

  8. </category></action></intent>

  9. </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. </receiver>

  19. </application>

  20. <uses -sdk="" android:minsdkversion="8">

  21. </uses></manifest>

复制代码

<ignore_js_op>

<ignore_js_op>

时间: 2024-12-19 21:29:29

Android Broadcast Receiver 使用入门的相关文章

Android Broadcast Receiver (广播接收者)

一.简介 Broadcast Receiver是广播接收器,接收自定义和系统的主播.也可以称为监听器. Broadcast Intent与Intent一样是通信的媒介,与Intent不同的是Broadcast Intent同时被多个组件接收. Broadcast Intent广播机制,广播源发出消息,通过AMS(Activity manager service),可以使多个组件接收同一个消息.与Broadcast Intent成对配合应用的是Broadcast Receiver广播接收器,用于,

【Android的从零单排开发日记】之入门篇(六)——Android四大组件之Broadcast Receiver

广播接受者是作为系统的监听者存在着的,它可以监听系统或系统中其他应用发生的事件来做出响应.如设备开机时,应用要检查数据的变化状况,此时就可以通过广播来把消息通知给用户.又如网络状态改变时,电量变化时都可以通过广播来通知用户.要做比喻的话,广播就像是我们的感官,能够有效且快速的从外界获取信息来反馈给自身. 一.广播的功能和特征 广播的生命周期很短,经过 调用对象—实现onReceive—结束 整个过程就结束了.从实现的复杂度和代码量来看,广播无疑是最迷你的Android 组件,实现往往只需几行代码

详解广播机制,Broadcast Receiver,Android进阶必备知识(一)。

直奔主题,关于广播的一些定义什么的我觉得只要是一名合格的初级android开发这都知道吧,我下面要做的就是怎么去使用broadcast receiver. 1.怎么去监听系统广播? Android系统有很多内置的系统广播:电话,短信,时间,地区,电池电量,网络变化等等...那么我们怎么去在我们的应用中实现监听呢?下面我们以监听手机网络发生改变的广播进行监听,都知道广播有两种注册方式,在这里我使用的代码注册的方式,为的是能更好的去理解广播运行机制.在代码中注册一定要注意在你使用完毕的时候一定要反注

Android开发- Intent和Broadcast Receiver

Intent是一种消息传递机制,可以在应用程序内使用,也可以在应用程序间使用.可以用于: 使用类名显示启动一个特定的Service或者Activity. 启动Activity或者Service来执行一个动作的Intent,通常需要使用特定的数据,或者对特定的数据执行动作. 广播某个时间已经发生. 使用Intent来启动Activity 显式启动新的Activity Intent intent = new Intent(MyActivity.this, SelectHorseActivity.cl

【Android 初学】13、Broadcast Receiver

Broadcast Receiver Android广播机制包含三个基本要素:广播(Broadcast) - 用于发送广播:广播接收器(BroadcastReceiver) - 用于接收广播:意图内容(Intent)-用于保存广播相关信息的媒介.Broadcast是一种广泛运用的在应用程序之间传输信息的机制.而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件. <p> 1.Android的广播机制介绍 在 Android 里面有各种各样的广播,比如

Android开发学习之路--Broadcast Receiver初体验

学习了Activity组件后,这里再学习下另一个组件Broadcast Receiver组件.这里学习下自定义的Broadcast Receiver.通过按键自己发送广播,然后自己接收广播.新建MyBroadcastReceiver,代码如下: package com.example.jared.broadcasttest; import android.content.BroadcastReceiver; import android.content.Context; import andro

Android基础之五:四大组件(Broadcast Receiver)

Broadcast Receiver作为Android四大组件之一,在整个系统中广泛运用,系统中存在各种各样的广播机制,例如下载,网络等都有具体的广播接收器 广播在很大程度上简化了开发,可以通过广播监听系统状态变化,监听另一App中事件传递,可以接收当前App中不同组件,不同UI.不同线程之间的消息传递 广播的创建与使用 创建一个继承自BroadcastReceiver类的子类,重写onReceiver方法 public class MReceiver extends BroadcastRece

Android中Intent详解(二)之使用Intent广播事件及Broadcast Receiver简介

通过第一篇的讲解,我们已经看到了如何使用Intent来启动新的应用程序组件,但是实际上他们也可以使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent可以在进程之间发送结构化的消息.因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,可以在不修改原始的应用程序的情况下,让我们开发人员对事件做出反应.Android大量使用了Broadcast Rec

Android中Intent具体解释(二)之使用Intent广播事件及Broadcast Receiver简单介绍

通过第一篇的解说,我们已经看到了怎样使用Intent来启动新的应用程序组件,可是实际上他们也能够使用sendBroadcast方法来在组件间匿名的广播消息. 作为一个系统级别的消息传递机制,Intent能够在进程之间发送结构化的消息. 因此,通过实现Broadcast Receiver来监听和响应应用程序内的这些Broadcast Intent. 通过使用Intent来广播一个事件,能够在不改动原始的应用程序的情况下.让我们开发者对事件做出反应.Android大量使用了Broadcast Rec