您的位置:首页 > 其它

Intent进阶 和 Intent-filter 学习笔记

2015-06-15 17:31 435 查看

1,Intent的基础用法

Intent是android中各activity之间通信的一个很重要的类,一般我们是这么使用的


2,深入Intent的构造和Intent-filter的基础入门

首先我们看下Intent的构造方法


componentName

componentName 直译的话就是组件的名字的意思,如果我们写的一个类当作成一个组件,那么这个componentName就是用来封装我们写的这些类的位置.


Action,category,data简单入门

我感觉,学intent 和 intent-filter把action,category,data搞清楚才算真正的掌握了intent的用法.


Action

如果学过Structs2的同学应该不会陌生,所谓的action就是发送一个特定的请求,然后,由一个符合这个请求的activity响应
官方文档中是这么说action的:
The action largely determines how the rest of the intent is structured — particularly the data and extras fields
— much as a method name determines a set of arguments and a return value. For this reason, it's a good idea to use action names that are as specific as possible, and to couple them tightly to the other fields of the intent. In other words, instead of defining
an action in isolation, define an entire protocol for the Intent objects your components can handle.
我简要说下我理解的大义,有错欢迎指出
action 在很大一部分程度上决定你的intent 是如何构建的,特别是还有data,和 额外的一些字段,还有更多的是如何决定方法名,设置数组和返回的参数.由于这个原因,这是一个很好的方法去尽可能的具体的使用action,用action把这些字段紧密的联系在一起.另外,灵活定义你的action,然后把它定义在一个文档中为你的intent对象的组建能够正常处理
渣翻译…可能比谷歌翻译还有烂…有错欢迎指出!!!!!!!!!!!!!


category

要使一个action能够正常运行,category是必不可少的,关于category详细介绍请看开发者文档中的intent and intent-filter
这里说下注意的细节和使用.
首先,这句话是很重要的..取之于官方文档
Therefore, activities that are willing to receive implicit intents must include "
android.intent.category.DEFAULT
" in their intent filters.
这句话,告诉我们在intent-filter(可以用xml创建也可以用代码创建,这里主要讲xml的创建),必须添加一个
android.intent.category.DEFAULT
,至于,不添加会发生什么事…我花了半个小时的排错告诉我是无法运行的

android.intent.category.DEFAULT

注意:每个intent只能设置一个action,但是,可以设置多个category,这里的组合问题,自己好好想想吧.


data

因为就是一些参数的介绍,看官方文档就好了,我是这样理解这个DATA,例如,我们一个Mp3播放器,当我们在任务管理器中点击一个MP3文件,MP3这个文件就是一个data,就会触发我们,在intent-filter匹配这个Mp3,<data />的activity运行..

请注意!!!这里给的都是些关键代码片段…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: