Android四大组件之一:BroadCastReceiver(广播接收者)
广播接受者是(BroadCastReceiver)是Android中的地大组件之一,之前学习了一些关于BroadCastReceiver方面的知识,今天回过头来发现已经快忘记的差不多了,毕竟现在是刚开始学习这门开发,并没有经常的用到这样技术,所以导致忘得非常的快,好了,废话少说,还是言归正传。
一、广播机制的注册和取消
说明:广播机制的注册分为两种,一种是想注册Activity一样,直接在AndroidManifest.xml文件中直接注册,另外一个中是动态方式注册,需要在Java源代码中去注册。
1、在AndroidManifest文件中注册。
<receiver android:name=".EditRecevier">
<intent-filter >
<action android:name="android.intent.action.EDIT"/>
</intent-filter>
</receiver>
说明:.EditReceiver是实现广播机制的的类,android.intent.action.EDIT是具体要实现的什么广播机制,本例是实现一个编辑的。使用这种方式注册的广播机制是一直存在的,无法取消。
2、在Java源代码中动态注册广播机制
//声明Receiver对象
smsreceiver = new SmsReceiver();
//声明intent-filter对象
IntentFilter intentFilter = new IntentFilter();
//将filter添加到intent-filter对象中
intentFilter.addAction(SMS_ACTION);
//使用registerReceiver()注册广播机制
MainActivity.this.registerReceiver(smsreceiver, intentFilter);
说明:首先声明实现广播机制的对象(短息)smsreceiver对象,然后声明intent-filter对象,永远指定广播机制的类型(本例是指短信),最后使用registerReceiver方法注册广播机制。使用这种方式注册的广播机制是可以取消的。
3、取消广播机制
//直接调用unregisterReceiver()方法注销广播机制
MainActivity.this.unregisterReceiver(smsreceiver);
说明:使用当前的Content对象调用unregisterReceiver方法直接取消广播机制
二、广播接收器的实现
说明:主要使用了BroadCastReceiver这个类,通过继承这个类,复写这个类的onReceive方法。在onReceive方法中对接收到的广播进行操控。
package com.example.android_broadcastreceiver2; import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.gsm.SmsMessage; public class SmsReceiver extends BroadcastReceiver { public SmsReceiver() {
// TODO Auto-generated constructor stub
} @Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
System.out.println("SMSReceiver"); Bundle bundle = intent.getExtras();
Object[] objects = (Object[]) bundle.get("pdus");
SmsMessage[] messages = new SmsMessage[objects.length];
for (int i = 0; i < objects.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[]) objects[i]);
System.out.println(messages[i].getDisplayMessageBody());
}
} }
三、如何发布广播
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub Intent intent = new Intent();
intent.setAction(Intent.ACTION_EDIT);
MainActivity.this.sendBroadcast(intent);
}
Android四大组件之一:BroadCastReceiver(广播接收者)的更多相关文章
- Android 四大组件之“ BroadcastReceiver ”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- [置顶] Android四大组件之BroadcastReceiver
Android四大组件之BroadcastReceiver Broadcast Receiver 广播接收器,是一种负责接收广播消息并对消息做出响应的组件,和Service一样并不提供与用户交互的UI ...
- Android四大组件:BroadcastReceiver 介绍
介绍 BroadcastReceiver 即广播组件,是 Android 的四大组件之一.用于监听和接收广播消息,并做出响应.有以下一些应用: 不同组件之间的通信(应用内或不同应用之间). 多线程之间 ...
- Android四大组件之BroadcastReceiver
什么是BroadcastReceiver? BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的广播. 在Android系统中,广播体现在方方面面, ...
- Android四大组件之—— BroadcastReceiver的使用
BroadcastReceiver又名广播接收者.既然它用于接收广播,那一定就有人负责发送. Android系统中的广播: 在现实生活中,我们都知道广播是什么,用来做什么.例如公园里的广播,主要通知游 ...
- Android 四大组件之 BroadcastReceiver
0 简介 BroadcastReceiver也就是“广播接收者”的意思,顾名思义,它就是用来接收来自系统和应用中的 广播. 在Android系统中,广播体现在方方面面,例 ...
- Android四大组件之一“广播”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- 【Android开发日记】之入门篇(六)——Android四大组件之Broadcast Receiver
广播接受者是作为系统的监听者存在着的,它可以监听系统或系统中其他应用发生的事件来做出响应.如设备开机时,应用要检查数据的变化状况,此时就可以通过广播来把消息通知给用户.又如网络状态改变时,电量变化时都 ...
- Android 四大组件之" ContentProvider "
前言 ContentProvider作为Android的四大组件之一,是属于需要掌握的基础知识,可能在我们的应用中,对于Activity和Service这两个组件用的很常见,了解的也很多,但是对Con ...
- Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听
Android实训案例(六)--四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听 Android中四大组件的使用时重中之重,我这个阶段也不奢望能把他 ...
随机推荐
- 如何在 iOS 8 中使用 Swift 实现本地通知(上)
当你的应用在后台运行时,可以简单地使用本地通知把信息呈现给用户.它可以允许你显示 提醒.播放提示音和数字角标(badge).本地通知可以被以下的事件触发:计划好的时间点或者用户进入和离开某个地理区域. ...
- python类型转换、数值操作(转)
最近学习python语言,碰到数据类型间的转换问题.看到一篇文章总结的挺详细,收藏之备用. 类型转换 代码 Code highlighting produced by Actipro CodeHigh ...
- c#给用户控件添加事件处理程序
1.首先在usercontrol后台添加如下代码: public partial class MyControl: UserControl { //添加事件代理 public event ...
- oracle视图总结
视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...
- 10905 - Children's Game
4th IIUC Inter-University Programming Contest, 2005 A Children’s Game Input: standard input Output: ...
- linux学习资料
鸟哥的Linux私房菜 基础学习篇(第三版) http://book.51cto.com/art/201007/211888.htm 鸟哥的Linux私房菜——服务器架设篇 http:// ...
- Java项目经验——程序员成长的关键(转载)
Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1.掌握项目开发的基本步骤2.具备极强的面向对象的分析与设计技巧3.掌握用例驱动.以 ...
- 源码-hadoop1.1.0-core-org.apache.hadoop.classification
里面放着两个注解类:InterfaceAudience和InterfaceStability. InterfaceAudience 类包含三个注解类型,用来被说明被他们注解的类型的潜在的使用范围(au ...
- Javascript教程:AngularJS的五个超酷特性
AngularJS是一个超棒的javascript框架,不单单对于开发人员来说非常有吸引力,对于UI设计师来说也同样出色.在这篇教程中,我们将简单的介绍AngularJS几个重量级必备特性,并且介绍它 ...
- Sumdiv 等比数列求和
Sumdiv Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 15364 Accepted: 3790 De ...