Intent是android应用组件之间传递消息的对象,主要服务的功能是:启动Activity,启动/绑定服务,传递广播。
Intent主要包含的信息如下:
1.组件名称ComponentName,是显示启动必要的信息,一般为指定类名,常用Activity和Service。
2.操作Action,指定将要执行的操作字符串,比如查看、发送、视图,常用Activity和Broadcast。
3.数据Data,引用操作数据,或者操作数据的MIME类型的Uri,目的是标记数据和数据类型,常用ContentProvider。
4.类别Category,处理Intent组件类型的附加信息字符串,比如Browsable,Launcher,帮助android系统解析应启动的应用组件。
5.附加值Extra,携带完成启动请求操作所需的附加键值对。
6.标志flag,指定Activity的启动模式,任务栈。
Intent分为两种类型:
(1)显示Intent:以类名启动组件,通常在自己应用中使用,需要指明ComponentName。
(2)隐示Intent:以声明的操作启动其他应用中的组件,需要设置Intent filter。
Intent filter在清单文件中定义,可以使用以下三个元素中的一个或多个指定Intent类型:Action,Data,Category。
例如:
<activity android:name="ShareActivity"> <!-- This activity handles "SEND" actions with text data --> <intent-filter> <action android:name="android.intent.action.SEND"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="text/plain"/> </intent-filter> <!-- This activity also handles "SEND" and "SEND_MULTIPLE" with media data --> <intent-filter> <action android:name="android.intent.action.SEND"/> <action android:name="android.intent.action.SEND_MULTIPLE"/> <category android:name="android.intent.category.DEFAULT"/> <data android:mimeType="application/vnd.google.panorama360+jpg"/> <data android:mimeType="image/*"/> <data android:mimeType="video/*"/> </intent-filter> </activity>