文档章节

Android开发:显式/隐式Intent意图跳转Activity总结

五大三粗
 五大三粗
发布于 2015/10/19 15:36
字数 952
阅读 786
收藏 1



显式跳转

 

在已知包名和类名的情况下常用的跳转方法:


 

nt mIntent = new Intent();

mIn

Int

etent.setClassName("com.android.settings","com.android.settings.Settings");

mContext.startActivity(mIntent);

我们也常这么用:

 

 

y.class);

startActivity(intent);

这是跳转到当前应用的某个Activity

Intent intent = new Intent(mContext, XXActivi
t
相信大家都十分熟悉,今天主要讲的是如何使用隐式intent意图跳转

隐式跳转

 

1、隐式跳转之Action跳转

 

假定有一个Activity在清单中是这样的声明的:

 

omer_action_here"

 </intent-filter>

 </ac

<activity android:name=".ActionActivity"; 

 <intent-filter

 action android:name="cus
ttivity>

那么我们就可以使用以下代码进行跳转到上面这个Activity中:

 

//创建一个隐式的 Intent 对象:Action 动作

 Intent intent = new Intent();

tegory跳转

 

定有一个Activity在清单中是这样


 //设置 Intent 的动作为清单中指定的action

 intent.setAction("customer_action_here");

 startActivity(intent);

2、隐式跳转之C
a
声明的:

  

<activity android:name=".CategoryActivity" >

 <intent-filter>

 <action android:name="customer_action_here" />

隐式的 Intent 对象:Category 类别

 Intent intent = new Inte

 <category android:name="customer_category_here" />

 </intent-filter>

 </activity>

我们可以使用如下代码进行跳转到以上Activity

  

//创建一
nt();

 intent.setAction("customer_action_here");

 //添加与清单中相同的自定义category

 intent.addCategory("customer_category_here");

 startActivity(intent);

3、隐式跳转之Data跳转

 

d:scheme="content"

假定有一个Activity是这样定义的:

  

< activity android:name=".DataActivity">

 < intent-filter>

 < category android:name="android.intent.category.DEFAULT" />

 < data

 andro
i android:host="com.example.intentdemo"

 android:port="8080"

 android:pathPattern=".*pdf"

 android:mimeType="text/plain"/>

 < /intent-filter>

 < /activity>

我们可以使用如下代码进行跳转:

  

使用,不可共用 

 //单独以 setData 方法设置 UR

//创建一个隐式的 Intent 对象,方法四:Date 数据

 Intent intent = new Intent();

 Uri uri = Uri.parse("content://com.example.intentdemo8080/abc.pdf");

 //注:setDatasetDataAndTypesetType 这三种方法只能单
I

 //intent.setData(uri);

 //单独以 seType 方法设置 Type

 //intent.setType("text/plain");

 //上面分步骤设置是错误的,要么以 setDataAndType 方法设置 URI mime type

 intent.setDataAndType(uri, "text/plain");

 startActivity(intent);

startActivity(intent);

4.2 调用地图

 

  

Uri uri = Ur

//打开地图查看经纬度

 

 i.

清单中的daport及以下属性时可选的,没有必要一定添加,但是添加了port及以下属性的话,java代码中的Uri中要做相应的匹配。

4、隐式跳转之调用系统应用

 

4.1 使用浏览器浏览网页

 

  

//web浏览器

 Uri uri= Uri.parse("http://www.baidu.com");

 Intent intent = new Intent(Intent.ACTION_VIEW, uri);


 parse("geo:38.899533,-77.036476");

 Intent intent = new Intent(Intent.ACTION_VIEW, uri);

 startActivity(intent);

4.3 调用电话拨号(不需要拨号权限)

 

  

Uri uri = Uri.parse("tel:10086");

 Intent intent = new Intent(Intent.ACTION_DIAL, uri);//注意区别于下面4.4action

 startActivity(intent);

 "这里写短信内容"); 

 inte

4.4 调用电话直接拨号(需要拨号权限)

 

  

Uri uri = Uri.parse("tel:15980665805");

 Intent intent = new Intent(Intent.ACTION_CALL, uri);//注意区别于上面4.3aciton

 startActivity(intent);

4.5 调用短信程序(无需发送短信权限,接收者自填)

 

  

Intent intent = new Intent(Intent.ACTION_VIEW); 

 intent.putExtra("sms_body"
,nt.setType("vnd.android-dir/mms-sms"); 

 startActivity(intent);

4.6 调用短信程序(无需发送短信权限)

 

  

Uri uri = Uri.parse("smsto:10086");//指定接收者

 Intent intent = new Intent(Intent.ACTION_SENDTO, uri);

 intent.putExtra("sms_body", "你这个黑心运营商");

 startActivity(intent);

4.7 调用邮件程序

 

  

.ACTION_VIEW);

 //Uri uri = Uri.parse("file:///sdc

Intent intent = new Intent(Intent.ACTION_SENDTO); 

 intent.setData(Uri.parse("mailto:xxx@gmail.com")); 

 intent.putExtra(Intent.EXTRA_SUBJECT, "这是标题"); 

 intent.putExtra(Intent.EXTRA_TEXT, "这是内容"); 

 startActivity(intent);

4.8 调用媒体播放器

 

  

Intent intent = new Intent(Inten
tard/zhy.mp3");

 Uri uri = Uri.parse("file:///sdcard/a.mp3");

 intent.setDataAndType(uri, "audio/mp3");

 startActivity(intent);

4.9 调用搜索

 

  

Intent intent = new Intent(); 

 intent.setAction(Intent.ACTION_WEB_SEARCH); 

 intent.putExtra(SearchManager.QUERY, "android"); 

 startActivity(intent);

总结

 

相信大家经过上面的介绍,已经对Intent跳转有了一个比较成熟的理解,Intent是组件之间的纽带,使用它可以让系统替我们完成很多工作,不需要我们来指定完成工作的程序。实际上,我们会发现,调用系统程序使用液无非是隐式跳转,只不过使用的是系统内置的一些ActionUriData等信息而已。希望对大家有所帮助.

 

 

 

© 著作权归作者所有

共有 人打赏支持
五大三粗
粉丝 160
博文 2264
码字总数 4712446
作品 0
广州
程序员
私信 提问
Android中隐式意图(Intent)用法

Intent对象在Android应用开发中起到很大的作用,例如激活组件(Activity,Service 等组件)或者携带数据的功能,相信大家在开发中经常会用到这些功能,Android中的意图分为显式意图和隐式意图...

程序袁_绪龙
2015/01/14
0
0
【转】Android深入探究笔记之三 -- Intent (隐式意图和显示意图)

Intent Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) , Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递 Intent 来执行动作...

rotiwen
2011/12/21
0
0
Android:Intent与IntentFilter 解析

说明: 一直不明白IntentFilter的作用,于是上网找资料。发现大家的说明都很难明白,没有举例说明。 对于IntentFilter的说明,我引用 h3c4lenovo 的:Android Intent action有什么用??? ...

岑浩源
2012/11/19
0
1
Android零基础入门第78节:四大组件的纽带——Intent

前面学习Activity时己经多次使用了 Intent,当一个Activity需要启动另一个Activity时, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity。...

鑫鱻
2017/10/18
0
0
显式intent和隐式intent

android当中显式intent和隐式intent的区别   定义:   Intent定义:Intent是一种在不同组件之间传递的请求消息,是应用程序发出的请求和意图。作为一个完整的消息传递机制,Intent不仅需...

开源中国段子手
2015/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
4
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
3
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
4
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0
ActiveMQ消息传送机制以及ACK机制详解

AcitveMQ是作为一种消息存储和分发组件,涉及到client与broker端数据交互的方方面面,它不仅要担保消息的存储安全性,还要提供额外的手段来确保消息的分发是可靠的。 一. ActiveMQ消息传送机...

watermelon11
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部