04_ Broadcast Receiver

  Broadcast是广播,和Android内的事件一样,它可以发出一个广播(事件),注册了该广播接收器(事件监听器)的所有组件都会接收到该广播,从而调用自己的响应方法(事件响应处理)。

  下面将详细的阐述如何发送Broadcast和使用BroadcastReceiver过滤接收的过程:

  首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。

  当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。

  代码如下:

package com.example.broadcastdemo;

import android.app.Activity;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {

    private Button btnSendBroadCast, btnRegBCR, btnUnregBCR;
    private final MyBC mybc = new MyBC();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnSendBroadCast = (Button) findViewById(R.id.btnSendBroadCast);
        btnRegBCR = (Button) findViewById(R.id.btnRegBCR);
        btnUnregBCR = (Button) findViewById(R.id.btnUnregBCR);

        btnSendBroadCast.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // Intent i = new Intent(MainActivity.this, MyBC.class);
                Intent i = new Intent(MyBC.ACTION);
                i.putExtra("txt", "Hello, LJY!");

                sendBroadcast(i);
            }
        });

        //Register a BroadCast Receiver
        btnRegBCR.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // an IntentFilter is an address.
                registerReceiver(mybc, new IntentFilter(MyBC.ACTION));
            }
        });

        btnUnregBCR.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                unregisterReceiver(mybc);
            }
        });

    }
}

package com.example.broadcastdemo;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyBC extends BroadcastReceiver {

    public static final String ACTION = "com.example.broadcastdemo.intent.action.MyBC";

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO Auto-generated method stub
        System.out.println("onReceive data =  " + intent.getStringExtra("txt"));

    }

}

时间: 2025-01-21 20:01:27

04_ Broadcast Receiver的相关文章

Android开发- Intent和Broadcast Receiver

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

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

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

【Android 初学】13、Broadcast Receiver

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

Broadcast Receiver基本使用

Broadcast Receiver介绍 Broadcast Receiver翻译成中文叫"广播接收器",所以它的作用是用来接收发送过来的广播的. Android应用程序可以发送或接收来自Android系统和其他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的从零单排开发日记】之入门篇(六)——Android四大组件之Broadcast Receiver

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

Android Broadcast Receiver 使用入门

Broadcast Receiver 的使用        1.Broadcast Receiver简介        2.Broadcast Receiver接收系统自带的广播        3.自定义广播        一.Broadcast Receiver简介        Android中的四大组件是 Activity.Service.Broadcast和Content Provider.而Intent是一个对动作和行为的抽象描述,负责组件之间程序之间进行消息传递.那么Broadcas

Broadcast receiver之我见

1.用于组件与组件之间通信,可在一个程序内部,也可以在多个程序内部实现! 2.传递的数据很小,频率很低 3.运行效率低,很慢 4.不允许通信频繁的情况下使用broadcast receiver 5.sendBroadcast(Intent)其中也是使用intent的方式跳转 6.registerReciver(broadcast entry,new IntentFilter(action))注册 7.unregisterRectiver()注销 8.生命周期只有十秒左右,如果在 onReceiv