OB体育:Intent过滤器在安卓中的应用_

    Activity. Service和BroadcastReceiver能定义多个Intent过涟器来通知系统它们可以处理哪些隐式Intent。每个过滩器描述组件的一种能力以及该组件可以接收的一组Intent.实际上,过泌器接收需要类型的Intent、拒绝不需要类型的Intent仅限于隐式Intent.对于显式Intent,无论内容如何。总可以发送给其目标,过沈器并不干预。对于能够完成的工作及显示给用户的界面,组件都有独立的过滩器。
    Intent过沈器是IntentFilter类的实例。然而。由于Android系统在启动组件前必须了解组件的能力。Intent过涟器通常不在Java代码中进行设皿。而是使用<intent-61ter>标签写在应用程序的配工文件(AndroidManifest.xml)中(唯一的例外是调用Context.registerReceiver()方法动态注册BroadcastReceiver的过滩器。它们通常直接创建为IntentFilter对象)。

    Intent过滤器
    过滤器中包含的域与加业斌对象中动作、数据和分类城相对应。过滤器对于隐式加记川在这3个方面分别进行侧试。仅有通过全部洲试时,Intent对象才能发送给拥有过滤器的组件。由于组件可以包含多个过滤器,Intent对象在一个过涟器上失败并不代表不能通过其他侧试。下面对这些侧试进行详细介绍。
    1.动作刹试配置文件中的<intent-filer>标签将动作作为qction子标签列出。例如:
    如上所示,尽管Intent对象仅定义一个动作,在过沈器中却可以列出多个。列表不能为空。即过涟器中必须包含至少一个<action>标签。否则会阻塞所有Intent.为了通过该侧试,Intent对象中定义的动作必须与过涟器中列出的一个动作匹配。如果对象或者过论器没有指定动作,结果如下:
      如果过滩器没有包含任何动作,即没有让对象匹配的东西。则任何对象都无法通过该侧试。
      如果过滤器至少包含一个动作,则没有指定动作的对象自动通过该洲试。

Comments |0|

Legend *) Required fields are marked
**) You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Category: 未分类