`

【Android】Intent 和 Intent Filter 官方文档读后总结

阅读更多

 

Intent 和 Intent Filter

 

1. <action/>包含在 <intent-filter></intent-filter> 标签对里,而且是必不可少的!不管以哪一种方式来匹配,都不可缺少这个<action/> ,可以有多个,至少要有一个。

如有多个的,话只需要匹配其中一个即可找到这个activity

<action>里的属性值大多数是在Intent里定义的,比如<action android:name="android.intent.action.VIEW"/>里的属性值就等于 Intent.ACTION_VIEW,

在这个Intent类里以ACTION开头定义的常量都是。当然,也可以自定义。 


2. 任何一个需要隐式启动的Activity都必须要有这项:<category android:name="android.intent.category.DEFAULT"/>

例外情况是:android.intent.category.MAIN和android.intent.category.LAUNCHER的filter中没有必要加入android.intent.category.DEFAULT,当然加入也没有问题 

<category>里的属性值大多数是在Intent里定义的,比如 <category android:name="android.intent.category.DEFAULT"/>里的属性值就等于 Intent.CATEGORY_DEFAULT,

在这个Intent类里以CATEGORY开头定义的常量都是。当然,也可以自定义。 


3.一个Activity里可以有多对<intent-filter></intent-filter> 只要匹配其中一对,即可启动这个Activity 


4.在<intent-filter></intent-filter>里可以有多个<data android:mimeType="xxxx"/>,只需匹配其中一个即可.注意:不可以同时出现第5点的标签对,即下面这条。

5.在<intent-filter></intent-filter>里可以有多个<data android:scheme="xxxx" android:host="yyyy" android:port="uuu"/>,只需匹配其中一个即可。

语法:

<data android:host="string"

android:mimeType="string"

android:path="string"

android:pathPattern="string"

android:pathPrefix="string"

android:port="string"

android:scheme="string" />

可以分开写,如:

<data android:scheme="something" android:host="project.example.com" android:port="80"/>

等同于这样写:

<data android:scheme="something"/>

<data android:host="project.example.com"/>

<data android:port="80"/>


在java代码里,Uri的格式:scheme://host:port/path or pathPrefix or pathPattern

注意:不可以同时出现第4点的标签对,即上面那条。

6.在<intent-filter></intent-filter>里可以有多个<action android:name="xxxx"> ,只需匹配其中一个即可。

7.当匹配不上任何Activity的话,会发生异常,跳出对话框:很抱歉...某某应用程序意外停止,请重试。

8.上面所说的全部适用于Service和BroadcastReceiver,只需把<activity ...></activity>换成<service ...></service>或<receiver ...></receiver>即可。

9.刚参考了一下packages\apps\HTMLViewer\AndroidManifest.xml,第4和第5条应该是不冲突才对,但是实际测试中却是冲突,暂时未到找原因。匹配方式请看:用于打开HTML文件的intent


在被启动的Activity(本例为MyActivityTwo)里接收数据:

Intent intent = getIntent();

String intentCategories = intent.getCategories()

String intentType = intent.getType();

Uri uri = intent.getData();

String uriScheme = uri.getScheme();

String uriPath = uri.getPath();

String uriHost = uri.getHost();

String uriEncodedPath = uri.getEncodedPath();

 

 

 

原文http://www.eoeandroid.com/thread-94077-1-1.html

说明http://www.cnblogs.com/Android_2011/archive/2011/06/12/2078643.html

 

 

 

 

 

 

分享到:
评论

相关推荐

    Android_Intent和Intent_Filter详解

    Android Intent和Intent_Filter详解 Android Intent是 Android 组件间通信的载体,它们之间的通信是通过 Intent 对象在不断传递实现的。Android 的三大核心组件 Activity、Service 和 BroadcastReceiver 都是通过 ...

    android中隐式intent的使用说明2022优秀文档.pptx

    例如,我们自己开发一个拨号面板应用程序,可以设置 activity 的 `&lt;intent-filter&gt;` 中 Action name 为 "abcdefg",这样别的程序调用拨号器时,用户可以从 Android 自带的拨号器和我们自己开发的拨号器中选择。...

    android中隐式intent与activity的匹配原则2022优秀文档.pptx

    Android中隐式Intent与Activity的匹配原则2022优秀文档 Android中隐式Intent与Activity的匹配原则是Android系统中的一种机制,用于在Activity之间进行通信和交互。隐式Intent是一种非显式的Intent,可以不指定具体...

    android中显式intent的使用说明2022优秀文档.pptx

    总结来说,显式Intent在Android开发中扮演着关键角色,它允许开发者明确地启动已知组件,确保组件调用的准确性。在编写代码时,根据实际需求选择合适的Intent类型,能有效地提高应用的可维护性和用户体验。

    Android_Intent详解

    这些预定义的操作可以在Android SDK文档中的`Android.content.Intent`类中找到。 - 示例:`ACTION_VIEW` + `content://contacts/1`用于查看标识符为1的联系人信息。 - 示例:`ACTION_DIAL` + `content://contacts...

    Android提高第四篇之Activity+Intent.docx

    在Android应用开发中,Activity和Intent是两个至关重要的概念,它们构成了Android应用程序的基本骨架。Activity作为用户界面的主要载体,Intent则是连接各个组件的桥梁,负责传递消息和启动操作。 Activity的生命...

    android中使用隐式intent完成应用的步骤及核心代码2022优秀文档.pptx

    4. 启动 Activity:使用隐式 Intent 启动 Activity,Android 系统将根据 Intent 的请求内容和 Intent Filter 比较,找到匹配的 Activity。 核心代码: 在 MainActivity 中: ```java Intent intent = new Intent()...

    Intent 与 Intent Filters 实现外部调用

    总结起来,Intent和Intent Filters是Android中实现组件间通信的核心机制,它们使得不同应用之间的交互成为可能,而轻应用的概念则充分利用了这一特性,为用户提供便捷的服务体验。在实际开发中,理解并熟练掌握...

    android手把手教你开发launcher.pdf

    Android Launcher 开发指南 Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget ...* Android 官方文档:Intent 和 Intent Filter * Android 官方文档:AndroidManifest.xml 文件格式

    Android Activity和Intent机制.doc

    在Android开发中,Activity和Intent是两个至关重要的概念,它们构成了Android应用的核心交互方式。Activity是用户界面的主要载体,Intent则是一种消息传递机制,用于在不同的组件之间建立联系。 Activity是Android...

    android类库文档中文版

    总结,Android类库文档中文版虽然不完整,但依然为开发者提供了丰富的学习资源。通过深入理解和实践其中的知识点,开发者可以不断提升自己的技能,创造出更优秀的Android应用。在探索的过程中,开发者还可以结合其他...

    Android系列教程之十二:Intents and Intent Filters(三).docx

    当用户尝试打开文本文件时,系统会查找匹配的Intent Filter,找到后将调用这个Activity来显示文本内容。 3. 创建图片查看器:与文本阅读器类似,但在Intent Filter中设置`mimeType`为`image/*`。这样,当用户点击...

    Android API中文文档 word版

    这份Word版的文档旨在帮助中国开发者更方便地理解和应用Android开发技术,避免语言障碍,提高开发效率。下面将详细探讨Android API中的核心知识点。 1. **Activity**: Activity是Android应用的基本组件,它代表了...

    Android学习笔记(三四):再谈Intent(上)-一些知识.doc

    总的来说,Intent是Android系统中实现组件间通信的关键工具,它提供了丰富的机制来描述操作和传递数据,使得开发者能够灵活地构建和连接应用程序的不同部分。理解并熟练运用Intent,对于深入学习Android开发至关重要...

    Android官方API文档完整版.zip

    这份"Android_api文档_快速查询"的压缩包包含了一个名为"Android官方API文档完整版.chm"的文件,这是一种Windows帮助文件格式,通常用于存放大量的技术文档和索引。 在Android API文档中,你可以找到以下几个核心的...

    知识共享-Android实现页面跳转的几种方式(雷惊风).

    在`IntentFilter`中声明此`Category`后,即使`Intent`未显式设置`Category`,也能成功匹配。 #### Extras 附加信息传递 - **Extras**:`Intent`对象还支持携带额外的数据,即`Extras`。这使得组件间能够传递更丰富...

    Android中文API文档

    1. **系统框架**:介绍Android系统的基本架构,包括Activity、Service、Broadcast Receiver、Content Provider等核心组件,以及Intent、Intent Filter等交互机制。 2. **UI组件**:详细阐述各种用户界面元素,如...

    Google Android SDK开发范例源码加学习文档

    1. **官方文档**: Android Developer官网提供详尽的API参考和教程。 2. **示例代码**: 提供的源码可以帮助初学者理解具体功能的实现,通过阅读和修改代码来加深理解。 3. **技术文档**: 学习文档可能包含最佳实践、...

    android-API文档

    Android API文档是开发者在进行Android应用开发时的重要参考资料,它详细阐述了Android系统的各个组件、接口、类库以及方法的使用。这篇文档集合了多个Android技术分支,为开发者提供了全面的指南。 首先,我们来看...

    Android Activity设置相同的action进行判断源码.rar

    除了查看源码,了解Android的Intent选择机制外,你还可以通过阅读官方文档和进行实际的项目实践来深入理解这部分内容。压缩包中的图片(如1-130106130A50-L.jpg、1_130106130825_1.jpg)可能是流程图或者示意图,有...

Global site tag (gtag.js) - Google Analytics