您的位置:首页 > Web前端

<manifest>intert-filter详解

2012-05-11 18:43 183 查看
  intent-filter是Manifest文件中的一个标签。可以包含在 <activity> <activity-alias> <service> <receiver>中, 而他本身必须包含<action>标签,另外还有两个标签分别为<category>和<data>,这两个属性不是必须的,可以根据情况来选择添加。

  intent-filter的格式如下:

View Code

<intent-filter android:icon="drawable resource"
android:label="string resource"
android:priority="integer" >
. . .
</intent-filter>


  intent-filter 指定了 activity(或service或broadcast,该intent-filter放在谁的下边,就是该组件) 可以响应的intent的类型。 明确了他的父组件的能力(包括activity或service可以做什么,或receiver可以接收处理什么样的broadcast)。它可以打开接收到该类型的广播的组件,过滤掉与自己规定的类型不同的intent。

  总的来说,从名字上也可以看出来,这就是一个intent的过滤器,把跟自己规定的类型相同的接收,不相同的过滤掉。

  intent-filter含有3个属性,分别是android:icon、android:label、android:priority。当某一个action发送出来之后,有超过一个控件通过了筛选器的过滤,这时候会弹出一个对话框,将所有通过的控件罗列出来待选择,icon和label就是确定的这里的值值,如果这里没有写明这两个值,就会依次向上,先去找activity的,如果还是没有就会使用application的。

  还有一个属性是priority,标明的是优先级,不过我从来没有用过,做测试也没有什么效果,等以后会用了再来填坑。

  intent-filter的子标签,有三个,其中<action>是必须含有的,另外如果是activity的话,设置了action后,<category>也必须写明,不然会报错,说找不到相应的activity。还有一个属性是<data>,这几个的内容都比较多,另外开标题来写吧。

  <action>

  <category>

  <data>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: