文档章节

使用广播接收器

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
AndroidManifest.xml文件详解(receiver)

语法(SYNTAX): . . .

长平狐
2012/10/16
979
0
Android四大组件BroadcastReceiver

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

DouDouLee
2016/03/07
11
0

没有更多内容

加载失败,请刷新页面

加载更多

svn 常用操作命令及问题处理

1. 常用命令 1.1. 基本使用 检出 checkout ➜ svn co repo_url -m '检出代码'➜ svn co repo_url saved_dir_name -m '检出代码,并指定目录名' 加入版本控制 add # 添加指定文件➜ svn...

whoru
25分钟前
1
0
记一次jquery validate的扩展(第一次失去焦点时触发校验)

最近在用jquery.validate 做前端表单校验,但是发现每次第一次失去焦点时,如果文本框内容为空,且该字段是必填项, 则不会触发校验,直到提交表单后,再次失去焦点时,才会触发,想对此进行...

foreach
29分钟前
0
0
java生成UUID

UUID介绍: UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以...

编程SHA
32分钟前
0
0
Docker Compose 原理

Docker 的优势非常明显,尤其是对于开发者来说,它提供了一种全新的软件发布机制。也就是说使用 docker 镜像作为软件产品的载体,使用 docker 容器提供独立的软件运行上下文环境,使用 dock...

Java干货分享
46分钟前
0
0
解决过滤器中设置cookie无效的问题

解决过滤器中设置cookie无效的问题 代码现场 filterChain.doFilter(sessionSyncRequestWrapper, response);Cookie emailCook = WebServletUtil.getSelectedCookie(request.getCookies(), ......

黄威
57分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部