代码之家  ›  专栏  ›  技术社区  ›  Mina Wissa

意图过滤器到底是什么?

  •  19
  • Mina Wissa  · 技术社区  · 14 年前

    我读了很多关于意图过滤器的文章,但我真的不明白它们到底做什么?

    所以,如果有人能用一个清晰的例子向我解释一下意图过滤器的作用到底是什么?

    谢谢

    8 回复  |  直到 13 年前
        1
  •  20
  •   Alex Martelli    14 年前

    here . 概括地说,当(例如)您将意图传递给Context.startActivity或Context.startService,或使用Context.sendBroadcast等进行广播时,意图传递给的是什么活动或服务(或哪组广播接收器)?

    答:如果意图是“显式的”,即设置了component name字段,那么它将被传递到它指定的目标组件——这通常发生在应用程序内的通信中。

    否则(“隐含”意图,这是典型的沟通 之间

    它是通过比较内容来实现的 意图对象与意图的关系 可能导致 界定它能处理的意图。 接受暗示的可能性 播发类型的意图。如果 组件没有任何意图 过滤器,它只能接收显式 意图。带有过滤器的组件可以 接受显式和隐式

        2
  •  5
  •   Ben    14 年前

    简单地说,意图过滤器是告诉操作系统如何启动/与应用程序中的不同活动/服务/广播接收器通信的一种方式。例如,如果你想要以 http://www.mycompany.com

    希望这有帮助。。。

        3
  •  4
  •   drawnonward    14 年前

    intent filter 让系统知道组件可以处理哪些数据或服务请求。组件可以是活动、服务或广播接收器。

        4
  •  4
  •   Zar E Ahmer    10 年前

    通过将给定的过滤器添加到清单,告诉操作系统我也可以处理Sms服务,无论何时发送Sms,它都会显示在列表中,或者您也可以显式地将其用作Sms服务。

    <intent-filter>
    
        <action android:name="android.intent.action.SENDTO" />
    
        <action android:name="com.example.code.SMS_INTENT" />
    
        <category android:name="android.intent.category.DEFAULT" />
    
        <data android:scheme="smsto" />
    
    </intent-filter>
    

     Intent intent = new Intent("com.example.code.SMS_INTENT", Uri.parse(uri));
    
     intent.putExtra("from", "code");
    
     startActivity(intent);
    
        5
  •  3
  •   ognian    14 年前

    IntentFilters用于声明声明组件将响应的Intent属性的模式。您可以使用IntentFilter指定给定的活动、服务或BroadcastReceiver将响应操作、数据mime类型、方案、路径等的组合。例如,如果您使用IntentFilter注册一个活动以执行数据类型为“text/plain”的操作发送,则每次用户希望发送一些文本时,都将调用您的活动。

        6
  •  3
  •   Praveen Kumar Verma    9 年前

    intentFilters公布组件的功能并对其进行分隔 服务或广播接收器将响应动作组合,

    通过比较intent与intent过滤器的三个基础 方面:

    1:-意图行动
    2:-意图数据(URI和数据类型)
    3:-意图

    行动:
    以名称声明接受的意向操作 属性。值必须是操作的文本字符串值, 不是类常量。


    声明接受的数据类型,使用一个或多个 指定数据URI各个方面的属性(方案、主机、, 端口、路径等)和MIME类型。

    类别:
    在名称中声明接受的意图类别 属性。值必须是操作的文本字符串值, 不是类常量。

    <intent-filter>
        <action android:name="android.intent.action.SEND"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>
    </intent-filter>
    
        7
  •  0
  •   BABU K    10 年前

    意向过滤器告诉android系统android组件(活动、服务、广播接收器)应该监听哪个意向或事件。