通过比较Intent对象内容与Intent-filter过滤器来实现,主要匹配的是动作、数据(URI和MIME)、种类,而Extras和flags在决定哪个组件时并不起任何作用。
<intent-filter>
<action android: name="com.jay.example.TEST_ACTION"/>
<category android: name ="com.intent.category.DEFAULT"/>
<data android: mimeType="video/mpeg"android:scheme="http"…/>
</intent-filter>
包含预定义动作的隐式Intent,是系统提供好的,在Intent类中已经定义好。
包含自定义动作的隐式Intent,开发人员按业务需求自定义的Action。
1.预定义动作的隐式Intent示例
代码示例:点击按钮后,所有Action为View的Activity被筛选出来,由用户进一步选择。
核心代码:建立第二个Activity的布局,与Activity对应。在第一个Activity的按钮点击事件中添加以下代码:
最后在第二个Activity的Intent中添加以下代码:
运行效果,见图4.5。
图4.5
2.自定义动作的隐式Intent示例(www.xing528.com)
代码示例:使用自定义的Action与Category来激活另一个Activity。
核心代码:建立第二个Activity的布局,与Activity对应。在第一个Activity的按钮点击事件中添加以下代码:
最后在第二个Activity的Intent中添加以下代码:
注意:虽然用户自定义了一个Category,但仍需要把这个默认的加上,不然会报错:
(1)新建一个module,命名为IntentmActionDemo。
(2)布局文件activity_main.xml。
(3)MainActivity.java。
(4)在另一个应用的清单文件里增加Intent相关代码,本例中第二个Activity使用的是应用TestDemo中的LoginActivity(该应用中已新建有一个LoginActivity),应用TestDemo的清单文件Manifest.xml如下:
(5)先装载(运行)应用TestDemo,再运行本例应用,效果见图4.6。
图4.6
(6)下面测试有多个应用响应同一个隐式Intent。打开一个应用并在清单文件里增加Intent相关代码,本例中第三个Activity使用的是应用JsonDemo中的MainActivity,应用JsonDemo的清单文件Manifest.xml如下:
(7)先装载(运行)应用TestDemo和JsonDemo,再运行本例应用,效果见图4.7。
图4.7
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。