A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1黑马币
本帖最后由 xiaoqing 于 2015-11-29 17:23 编辑


在Android系统里,要打开一个组件,需要叫做Intent的对象,这个对象的作用主要是就是表明你需要打开什么组件,需要传递什么数据。其中又包括显示意图和隐式意图。显示意图是开发者已经明确知道我需要哪个类,一般就是传入class作为参数。隐式意图是目前我不知道系统内部有没有符合我条件的应用,但我需要系统帮我去匹配一下,那么我就声明一下我的条件,系统就会根据这个Intent的内容去匹配查找所有符合条件的组件。今天我们来看看深圳问答网的师生对这个问题的探讨:




学生的问题:

  可以详细的说一下隐式意图吗?            action,category和data标签分别代表什么?有什么用?应该怎么用?

       老师的回答:

   Data:Data通常是URI格式定义的操作数据。例如:tel:// 。通过setData()方法设置。google 提供的docs解释中有这么一句:So specifying the MIME type of your data helps the Android system find the best component to receive your intent.大致意思是:指定一个data可以帮助android系统找到最匹配的组件。

Action:Action属性的值为一个字符串,它代表了系统中已经定义了一系列常用的动作。通过setAction()方法或在清单文件AndroidManifest.xml中设置。默认为:DEFAULT。官方docs有这么一段:You can specify your own actions for use by intents within your app (or for use by other apps to invoke components in your app), but you should usually use action constants defined by the Intent class or other framework classes.大致是:咱们能定义我们自己的(或别人定义好我们来指定),然后在intent中使用。

Category:A string containing additional information about the kind of component that should handle the intent. Any number of category descriptions can be placed in an intent, but most intents do not require a category.大致是:打开组件组要的额外信息。category可以放置任何的信息。

最后,关于这三个,google的docs中这么说:These properties listed above (component name, action, data, and category) represent the defining characteristics of an intent. By reading these properties, the Android system is able to resolve which app component it should start.大致翻译一下就是:data/action/categoty组成一个特殊的intent,android系统可以解析得到一个最应该启动的组件。
我们在使用时,根据需求想要做一些相应的动作,那么就需要根据别人的定义去定义我们的intent。当然,我们也可以在自己的组件中定义的这三者,在别人想要打开自己的 activity 时,系统可以找到我们。
这些在sdk的docs中都能看到官方的解释。可以多多去看看,更加详细。

深圳校区除了全国独有问答网,就业老师面试服务,还有更多神秘惊喜等着你,咨询热线:0755-66689855





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马