intent,Intent-filter的概念和作用

1、Intent的概念及作用

Intent——意图,它可以带有数据,在Android设备上的任何应用程序组件间相互作用,将不同组件连在一起的桥梁。

Intent作用:

  • Intent最常用在启动新的Activity,不管是显式的(通过指定类来加载)还是隐式的(通过请求在一块数据上执行的动作)。
  • Intent还可以用来广播消息,然后使用Broadcast Receiver来监听并响应这些Intent。
  • 使用Intent来传播动作,比如通过我们的程序中打电话。

2、Intent-filter的概念机作用

Intent-filter用来注册Activity、Service、Broadcast Receiver具有在某种数据上处理一个动作的能力。

当一个应用程序为了向Android说明它有为某种数据或者其他应用程序组件提供处理动作的能力时,它需要在manifest中注册为一个Intent处理者。

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 3     package="LiB.PickContacts" android:versionCode="1" android:versionName="1.0">
 4     <uses-sdk android:minSdkVersion="9" />
 5     <uses-permission android:name="android.permission.CALL_PHONE" />
 6     <uses-permission android:name="android.permission.WRITE_CONTACTS" />
 7     <uses-permission android:name="android.permission.READ_CONTACTS" />
 8 
 9 
10     <application android:icon="@drawable/icon" android:label="@string/app_name">
11         <activity android:name=".Android_PickContactsActivity"
12             android:label="@string/app_name">
13             <!--注册当前的Activity为默认启动的页面  -->
14             <intent-filter>
15                 <action android:name="android.intent.action.MAIN" />
16                 <category android:name="android.intent.category.LAUNCHER" />
17             </intent-filter>
18         </activity>
19         <activity android:name=".ChileActivity" android:label="@string/app_name">
20         <!-- 注册当前的Activity具有处理Action_picks动作的能力 -->
21             <intent-filter>
22                 <action android:name="Action_picks" />
23                 <category android:name="android.intent.category.DEFAULT" />
24                 <!-- <data android:path="contacts" android:scheme="content" /> -->
25             </intent-filter>
26         </activity>
27     </application>
28 </manifest>
复制代码

❑ action

使用android:name特性来指定对响应的动作名。动作名必须是独一无二的字符串,所以,一个好的习惯是使用基于Java包的命名方式的命名系统。

❑ category

使用android:category属性用来指定在什么样的环境下动作才被响应。每个Intent Filter标签可以包含多个category标签。你可以指定自定义的种类或使用     Android提供的标准值,如下所示:

❑ ALTERNATIVE

你将在这章的后面所看到的,一个Intent Filter的用途是使用动作来帮忙填入上下文菜单。ALTERNATIVE种类指定,在某种数据类型的项目上可以替代       默认执行的动作。例 如,一个联系人的默认动作时浏览它,替代的可能是去编辑或删除它。

❑ SELECTED_ALTERNATIVE

与ALTERNATIVE类似,但ALTERNATIVE总是使用下面所述的Intent解析来指向单一的动作。SELECTED_ALTERNATIVE在需要一个可能性列表时使用。

❑ BROWSABLE

指定在浏览器中的动作。当Intent在浏览器中被引发,都会被指定成BROWSABLE种类。

❑ DEFAULT

设置这个种类来让组件成为Intent Filter中定义的data的默认动作。这对使用显式Intent启动的Activity来说也是必要的。

❑ GADGET

通过设置GADGET种类,你可以指定这个Activity可以嵌入到其他的Activity来允许。

❑ HOME

HOME Activity是设备启动(登陆屏幕)时显示的第一个Activity。通过指定Intent Filter为HOME种类而不指定动作的话,你正在将其设为本地home画面的替代。

❑ LAUNCHER

使用这个种类来让一个Activity作为应用程序的启动项。

❑ data

data标签允许你指定组件能作用的数据的匹配;如果你的组件能处理多个的话,你可以包含多个条件。你可以使用下面属性的任意组合来指定组件支持的数据:

❑ android:host

指定一个有效的主机名(例如,com.google)。

❑ android:mimetype

允许你设定组件能处理的数据类型。例如,<type android:value=”vnd.android.cursor.dir/*”/>能匹配任何Android游标。

❑ android:path

有效地URI路径值(例如,/transport/boats/)。

❑ android:port

特定主机上的有效端口。

❑ android:scheme

需要一个特殊的图示(例如,content或http)。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值