文档章节

使用广播接收器

c
 chuiyuan
发布于 2014/05/11 16:52
字数 546
阅读 67
收藏 0
点赞 0
评论 0

前 的用Intent 在不同的Activity之间跳转,可以说是直接 Intent,因为指定 了明确 的目标。

广播则是相当于间接Intent.

间接intent就是没有指定具体目标的Intent,只是在创建 是指定 了一些 信息。然后再广播出去,

所有 关心这种Intent的广播接收器都会接收并处理。

一.间接 Intent的说明信息

  Action 

   data:要操作的数据 ,以uri的形式表示,

  category:动作的附加 信息。

  type :数据 的类型,一般由intent相关信息推导。

  component:目标组件 ,一般由intent相关信息推导。

  Extras :用来 传递参数 ,如发送邮件时,将邮件名,正文都加入到Extras中,再通过intent 发送给相关的activity。


发送广播 :

ContextWrapper.sendBroadcast( Intent intent )


二 .接收广播 

使用广播接收器---BroadcastReceiver。每一个广播接收器都 要有一个Intent 过虑 器。

steps;

1. 新建 一个 Intent过虑 器IntentFilter。用

IntentFilter.IntentFilter (String action)

接下来再设定一些 属性,如

IntentFilter.addcategory(String category)。

2. 新建 一个广播接收器BroadcastReceiver ,并重写 onReceiver()方法。

BroadcastReceiver receiver = new BroadcastReceiver(){

public void onReceiver(Context ctx, Intent intent ){

//接收到广播 后执行的

}}

note: onReceiver()里面只能执行一些段时间的代码 ,超过5秒就会出去超时的对话框,用时多的可以放在一个线程里面,or Activity or Service里,再用Intent去启动它们。

3. 注册一个接收器

新建广播 接收器后并不能马上就工作,因为android系统 并不知道你已经 拥有了一个接收器,所以要注册。

ContextWrapper.registerReceiver (BroadcastReceiver receiver, IntentFilter filter )

4.当我们不再关注 广播 时,就要将接收器注销了

ContextWrapper.unregister (BroadcastReceiver receiver )



追加:

如果用动态注册方法,也就是registerReceiver(),只有程序执行时才能接受广播,如果在 manifest文件中注册,则无论 程序 是运行还是关闭,广播都是活动状态 。

final Intent intent= new Intent ("z");
		
		sendButton.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				sendBroadcast(intent);
			}
		});

z是action 。注册在manifest 中时如下 

<receiver 
            android:name=".MyReceiver">
            <intent-filter>
                <action  android:name="z"/>          
          </intent-filter>
        </receiver>

广播会自动 接收。




© 著作权归作者所有

共有 人打赏支持
c
粉丝 9
博文 91
码字总数 40993
作品 0
海淀
安卓应用安全指南 4.2.2 创建/使用广播接收器 规则书

4.2.2 创建/使用广播接收器 规则书 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 遵循下列规则来发送或接受广播。 4.2.2.1 仅在应用...

apachecn_飞龙 ⋅ 03/16 ⋅ 0

安卓应用安全指南 4.2.3 创建/使用广播接收器 高级话题

4.2.3 创建/使用广播接收器 高级话题 原书:Android Application Secure Design/Secure Coding Guidebook 译者:飞龙 协议:CC BY-NC-SA 4.0 4.2.3.1 结合导出属性和意图过滤器设置(用于接收...

apachecn_飞龙 ⋅ 03/16 ⋅ 0

四大组件之广播接收器-Broadcast Receiver

前言 安卓四大组件包括Activity、Service、BroadcastReceiver和ContentProvider。本文主要讲解广播接受者(BroadcastReceiver)。广播是一种广泛运用的在应用程序之间传输信息的机制,而Broad...

u014527323 ⋅ 2017/03/15 ⋅ 0

Android四大组件BroadcastReceiver

每个应用程序都可以对自己感兴趣的广播进行注册,这样程序可以接收到自己感兴趣的广播,这些广播可能来自系统或其他应用程序。 1、注册广播的两种方式: 动态注册:在代码中注册 //例如注册监...

DouDouLee ⋅ 2016/03/07 ⋅ 0

AndroidManifest.xml文件详解(receiver)

语法(SYNTAX): . . .

长平狐 ⋅ 2012/10/16 ⋅ 0

广播机制(四)

广播机制 1.广播接收器(Broadcast Receiver) : 1.标准广播 : 是一种完全异步执行的广播,在广播发出之后,所有的广播接收器几乎都会在同一时刻接收到这条广播消息, 因此它们之间没有任何先...

不正经啊不正经 ⋅ 2015/03/30 ⋅ 0

完全关闭App的两种做法

做项目的时候,涉及到一个注销登录的过程,这时候需要关闭之前打开的所有Activity。仅finish当前Activity显然是不够的,需要把返回栈中的Activity一个个销毁。我实践过的方法有两种: 1、基础...

一剑围城 ⋅ 2017/02/14 ⋅ 0

《Android深入透析》之广播(Broadcast)

概述 在android中,Broadcast作为四大组件之一,被广泛的应用在android程序之间的数据传递。举一个大家都比较熟悉的例子来说明。在车上的时候大家都有收听广播的习惯,广播电台通过发送不同频...

朵朵和糖糖 ⋅ 2014/11/12 ⋅ 0

SDL_处理语言变化Handling a Language Change

我的博客 Handling a Language Change 如果您的应用程序使用多路蓝牙传输,本指南将适用。 当用户在head单元上更改语言时,onProxyClosed()回调将在您的应用程序的Sdl服务中调用,您的应用程...

勇敢写信 ⋅ 03/23 ⋅ 0

LocalBroadcastManager分析

在Android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信,所以对单个应用程序而言BroadcastReceiver是存在安全性问题的,...

xingjm8511 ⋅ 2016/06/06 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud相关项目

Spring Cloud Config 配置管理工具包,让你可以把配置放到远程服务器,集中化管理集群配置,目前支持本地存储、Git以及Subversion。 Spring Cloud Bus 事件、消息总线,用于在集群(例如,配...

明理萝 ⋅ 28分钟前 ⋅ 1

更新队友POM文件后报错

打开报错的地方的pom及其引用方法所在文件的pom,观察其版本号是否一致,不一致进行更改

森火 ⋅ 34分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 39分钟前 ⋅ 0

Succinct Data Structure

作者:唐刘 最近看了一篇论文 SuRF: Practical Range Query Filtering with Fast Succinct Tries,里面提到使用一种新的数据结构 Succinct Range Filter(SuRF) 替换掉了 RocksDB 默认的 Bloo...

TiDB ⋅ 40分钟前 ⋅ 0

Java进阶之内存模型介绍

Java进阶之内存模型介绍 前言 不管在什么编程语言里面,读取和写入都是我们程序最普遍的操作,在单线程的程序里面我们可能不关注线程的读写问题,但是一旦到多线程的环境下,读和写就会变得非...

九劫散仙 ⋅ 41分钟前 ⋅ 0

在windows上搭建一个ftp服务器

一、关于ftp FTP 是File Transfer Protocol的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序。基于不同的操作系统有不同的FTP应用程序...

zctzl ⋅ 46分钟前 ⋅ 0

JDK8 排序

import java.util.Collections;import java.util.List;import java.util.ArrayList;import java.util.Comparator; public class JavaTest { public static void main(String......

Jeam_ ⋅ 55分钟前 ⋅ 0

api管理平台汇总

swagger crapApi RAP xxl-api apidoc

facula ⋅ 56分钟前 ⋅ 0

Java 11 快要来了,编译 & 运行一个命令搞定!

Java 11 马上要来了,原定于 9 月发布,还有不到 3 个月了,敬请期待更多新功能被加入到 11 当中,本文本讲的是 JEP 330 这个新特性。 化繁为简,一个命令编译运行源代码 看下面的代码。 //...

Java技术栈 ⋅ 58分钟前 ⋅ 0

谷歌运营了一年多的无人出租车,得出了四条宝贵的经验

简评:并不是谷歌运营,不过国内对 Waymo 不敏感,就标题党了一下请多谅解。另外网友对于无人出租车是认可的,但是觉得如果价格没有优势,还是回去乘坐人类驾驶的汽车,毕竟这是人家的经济来...

极光推送 ⋅ 58分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部