Android菜鸟的成长笔记(9)——Intent与Intent Filter(下)
原文:[置顶] Android菜鸟的成长笔记(9)——Intent与Intent Filter(下)
接着上一篇的内容,下面我们再来看看Intent的Data与Type属性。
一、Data属性与Type属性
Data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象
格式:scheme://host:port/path
例如:
content://com.android.contacts/contacts/1
tel:123
其中prot部分被省略了,contacts/1是path部分。
Type属性用于指定该Data所指定Uri所对应的MIME类型,这种MIME类型可以是自定义的,但是要符合abc/xyz格式。
二、Data属性与Type属性之间的关系
Type属性和Data同时出现会出现覆盖现象,如果要同时设置要使用setDataAndType()方法,举例如下:
//Type属性被Data覆盖
public void overrideType(View source){
Intent intent = new Intent();
intent.setType("abc/xyz");
intent.setData(Uri.parse("lee://www.baidu.com:80/test"));
}
//Data属性被Type覆盖
public void overrideData(View source){
Intent intent = new Intent();
intent.setData(Uri.parse("lee://www.baidu.com:80/test"));
intent.setType("abc/xyz");
}
//同时设置Data和Type
public void dataAndType(View source){
Intent intent = new Intent();
intent.setDataAndType(
Uri.parse("lee://www.baidu.com:80/test"), "abc/xyz");
}在manifest配置文件中配置Activity的方法如下
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
<data
android:mimeType="" <!-- Type属性 -->
android:scheme="" <!-- scheme部分 -->
android:host="" <!-- host部分 -->
android:port="" <!-- port部分 -->
android:path="" <!-- path部分 -->
android:pathPrefix="" <!-- path前缀 -->
android:pathPattern=""/> <!-- path模版 -->
</intent-filter>
三、Data属性与Type属性的匹配方式
Type属性也是用户指定组件匹配的组件,Type是需要严格匹配的。
Data属性则不需要严格匹配,过程如下:
如果指定了android:scheme属性,那么只要Intent的Data属性的scheme部分与android:scheme属性相同就可以启动该组件。
如果制定了android:scheme属性和android:host需要两个属性与Intent的Data部分的该部分相同则启动该组件。
如果定制了android:scheme、android:host、android:port属性则需要与该部分相同才能启动该组件。
...................
四、小练习
Intent intent = new Intent();
String data = "http://blog.csdn.net/dawanganban";
Uri uri = Uri.parse(data);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
Intent intent = new Intent();
String data = "content://com.android.contacts/contacts/1";
Uri uri = Uri.parse(data);
intent.setData(uri);
startActivity(intent);
Intent intent = new Intent();
String data = "tel:10000";
Uri uri = Uri.parse(data);
intent.setData(uri);
startActivity(intent);
五、Intent的其他属性
Extra属性:用于在多个Activity之间传递数据,该属性其实是一个Bundle对象,后面在Activity间传值的文章中将会介绍。
Flag属性:一些额外的控制旗标,在后面将会详细介绍。
Android菜鸟的成长笔记(9)——Intent与Intent Filter(下)的更多相关文章
- Android菜鸟的成长笔记(8)——Intent与Intent Filter(上)
原文:[置顶] Android菜鸟的成长笔记(8)——Intent与Intent Filter(上) Intent代表了Android应用的启动“意图”,Android应用将会根据Intent来启动指 ...
- Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值
原文:[置顶] Android菜鸟的成长笔记(10)——使用Bundle在Activity之间传值 前面我们了解了如何启动一个Activity,一个Activity在启动另外一个Activity的时候 ...
- Android菜鸟的成长笔记(7)——什么是Activity
原文:[置顶] Android菜鸟的成长笔记(7)——什么是Activity 前面我们做了一个小例子,在分析代码的时候我们提到了Activity,那么什么是Activity呢? Activity是An ...
- Android菜鸟的成长笔记(6)——剖析源码学自定义主题Theme
原文:Android菜鸟的成长笔记(6)--剖析源码学自定义主题Theme 还记得在Android菜鸟的成长笔记(3)中我们曾经遇到了一个问题吗?"这个界面和真真的QQ界面还有点不同的就是上 ...
- Android菜鸟的成长笔记(17)—— 再看Android中的Unbounded Service
原文:Android菜鸟的成长笔记(17)-- 再看Android中的Unbounded Service 前面已经写过关于startService(Unbounded Service)的一篇文章:&l ...
- Android菜鸟的成长笔记(3)——给QQ登录界面说So Easy
原文:Android菜鸟的成长笔记(3)--给QQ登录界面说So Easy 上一篇:Android菜鸟的成长笔记(2)--第一个Android应用 我们前面已经做了第一个Android应用程序,虽然有 ...
- Android菜鸟的成长笔记(2)——第一个Android应用
原文:Android菜鸟的成长笔记(2)--第一个Android应用 上一篇:Android菜鸟的成长笔记(1)--Anddroid环境搭建从入门到精通 在上一篇Android菜鸟的成长笔记(1)中我 ...
- Android菜鸟的成长笔记(1)——Android开发环境搭建从入门到精通
原文:Android菜鸟的成长笔记(1)--Android开发环境搭建从入门到精通 今天在博客中看到好多Android的初学者对Android的开发环境的搭建不熟悉而导致不能进行学习,所以我决定自己写 ...
- Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上)
原文:[置顶] Android菜鸟的成长笔记(14)—— Android中的状态保存探究(上) 我们在用手机的时候可能会发现,即使应用被放到后台再返回到前台数据依然保留(比如说我们正在玩游戏,突然电话 ...
随机推荐
- 使用VirtualBox SDK之初步编译
VirtualBox成功编译出来后,在生成的out文件夹中会发现有SDK文件夹(当然也可以直接从官网下SDK),里面有例子,但是直接用Visual Studio编译的话会出一大堆错误,本文就是讲解如何 ...
- USACO 2005 January Gold The Wedding Juicer
题目 题目链接,我只在poj上找到了题目,usaco居然上不去. 大意就是说有一些\(1\times 1\times 1\)的小方块堆在一起,问最多能装多少水. 我们在一次测试中出了这题,由于我写水题 ...
- aix网络管理
lsdev -Cc adapter | grep ent 列出网卡 lsdev -Cc adapter 或者lscfg | grep -i adpter 显示已经安装的网卡 lsdev -Cc i ...
- PHP函数详细剖析之rtrim函数 By ACReaper
string rtrim ( string $str [, string $charlist ] ) 这个函数很好理解.r表示右边.trim表示修剪.即右边修剪.默认修剪字符str右边的字符.默认修剪 ...
- 【笔记】《通俗详细地讲解什么是P和NP问题》的概念记录
1问题规模: 要计算或解决一个问题,该问题通常有一个大小规模,用n表示. 2算法的时间复杂度 计算次数与n的关系函数.(因为计算次数隐含时间). 3多项式时间复杂度 所有形如a*n^k+b*n^(k- ...
- ubunut在系统恢复模式下无法改动rootpassword的分析和解决
前些日子本猫的ubuntu 14.10貌似出了点问题,想改动下rootpassword,可是无奈原系统有错正常情况下无法改动啊.这是逼我重装的节奏吗? 在ubuntu开机后马上按住left_shift ...
- 一个Sqrt谋杀触发功能
我们平时常常会有一些数据运算的操作,须要调用sqrt,exp,abs等函数,那么时候你有没有想过:这个些函数系统是怎样实现的?就拿最常常使用的sqrt函数来说吧.系统怎么来实现这个常常调用的函数呢? ...
- zoj 1134 - Strategic Game
题目:给你一棵树.找到最小的顶点集合,使得全部的边至少有一个顶点在这个集合中. 分析:树形dp,图论,最小顶点覆盖. 方案1:树形dp.分别记录每一个节点取和不取的最优解f(k.0)与f(k,1): ...
- Winform - 全屏显示
//全屏显示 this.WindowState = FormWindowState.Maximized;
- fzu 2035 Axial symmetry(枚举+几何)
题目链接:fzu 2035 Axial symmetry 题目大意:给出n个点,表示n边形的n个顶点,判断该n边形是否为轴对称图形.(给出点按照图形的顺时针或逆时针给出. 解题思路:将相邻两个点的中点 ...