文档章节

使用广播接收器

c
 chuiyuan
发布于 2014/05/11 16:52
字数 546
阅读 67
收藏 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
博文 92
码字总数 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
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
0
四大组件之广播接收器-Broadcast Receiver

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

u014527323
2017/03/15
0
0
Android四大组件BroadcastReceiver

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

DouDouLee
2016/03/07
11
0
AndroidManifest.xml文件详解(receiver)

语法(SYNTAX): . . .

长平狐
2012/10/16
979
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

React16.4 开发简书项目 从零基础入门到实战

React16.4 开发简书项目 从零基础入门到实战 关注我的订阅号下载 React16.4 开发简书项目 从零基础入门到实战

蜗牛奔跑
10分钟前
0
0
day57-20180815-流利阅读笔记-待学习

社恐怎么办?这个漫画或许能治愈你 毛西 2018-08-15 1.今日导读 近日,芬兰漫画家卡罗利娜·科尔霍宁创作的绘本《芬兰人的噩梦》在中国大火。一时间书中的主人公马蒂成为了人们茶余饭后热议的...

aibinxiao
14分钟前
3
0
用REDIS实现分布式缓存

第一:Redis 是什么? Redis是基于内存、可持久化的日志型、Key-Value数据库 高性能存储系统,并提供多种语言的API. 第二:出现背景 数据结构(Data Structure)需求越来越多, 但memcache中没有...

明理萝
14分钟前
1
1
【Java】留下没有基础眼泪的面试题

前言 只有光头才能变强 本文力求简单讲清每个知识点,希望大家看完能有所收获 一、如何减少线程上下文切换 使用多线程时,不是多线程能提升程序的执行速度,使用多线程是为了更好地利用CPU资...

Java3y
17分钟前
0
0
SpringCloud SpringBoot mybatis分布式微服务云架构开发Web应用(2)

在完成配置之后,举一个简单的例子,在快速入门工程的基础上,举一个简单的示例来通过Thymeleaf渲染一个页面。 @Controllerpublic class HelloController { @RequestMapping("/")...

itcloud
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部