Intent意图的深入
使用Intent可以激活Android应用三种类型的核心组件:活动、服务和广播接收者。
Intent可以划分成显式意图和隐式意图。
显式意图: 调用Intent.setComponent() \ Intent.setClassName或Intent.setClass()方法明确指定了组件名的Intent为显式意图,显式意图明确指定了要激活的组件是哪个组件
比如以下代码为显式意图:
@Overridepublic void onClick(View view) {//设置跳转到其他应用Intent intent=new Intent();intent.setClassName("com.example.mysingleinstance1","com.example.mysingleinstance1.MainActivity");startActivity(intent);}});
隐式意图: 没有明确指定组件名的Intent为隐式意图。Android系统会根据隐式意图中设置的 动作(action)、类别(category)、数据(URI和数据类型) 找到最合适的组件来处理这个意图。
AndroidManifest.xml 文件中设置动作、类别、数据、
intent-filter 设置意图过滤器
action设置动作
category 设置类别
startActivity是这个方法内部为Intent自动添加的类别android.intent.category.DEFAULT 所以我们要在XML中添加
data 设置数据
相当于https://
android:scheme=“example”
域名
android:host=“www.biao.cn”
路径
android:path="/kl"/
设置数据的类型
android:mimeType=“image”
<activityandroid:name=".OtherActivity"android:label="新Activity"android:exported="true"><!--intent-filter意图过滤器--><intent-filter><!--action动作--><action android:name="com.example.xxx"/><!--类别category--><category android:name="com.example.Other.java"/><!--startActivity是这个方法内部为Intent添加的类别android.intent.category.DEFAULT--><category android:name="android.intent.category.DEFAULT"/><!--数据--><!--只要schem和host能够匹配上就行--><!--example://www.biao.cn--> <!--限制主机名--> <!--限制路径--><data android:scheme="example" android:host="www.biao.cn" android:path="/kl"/><!--设置数据的类型--><data android:mimeType="image/*"/></intent-filter></activity>
调用隐式意图:
intent.setAction(“com.example.xxx”); 设置动作
intent.addCategory(“com.example.Other.java”); 添加类别
intent.setData(Uri.parse(“example://www.biao.cn/kl”)); 设置数据。xml文件中没限定路径就可以随便写
intent.setType(“image/jpeg”); 数据的类型。
方法内部会清除前面setData方法所设置的数据。。在setData前面设置setType也是不行的。所以我们要用Intent方法内部的setDataAndType可以同时设置数据和数据类型
intent.setDataAndType(Uri.parse(“example://www.biao.cn/kl”),“image/jpeg”); 同时设置数据和数据类型
this.findViewById(R.id.openActivity).setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View view) {/** 只要Intent中的动作(Action)和类别(Category)都出现过滤器(Intent-Filter中,就能与之匹配,否则匹配失败)* */// startActivity(new Intent(MainActivity.this,OtherActivity.class));//显式意图Intent intent=new Intent();//采用隐式意图激活Activity//设置动作intent.setAction("com.example.xxx");//添加类别intent.addCategory("com.example.Other.java");//数据的类型//方法内部会清除前面setData方法所设置的数据。。在setData前面设置setType也是不行的。// 所以我们要用Intent方法内部的setDataAndType可以同时设置数据和数据类型//intent.setType("image/jpeg");//数据//intent.setData(Uri.parse("example://www.biao.cn/kl"));//后面的路径可以随便写//同时设置数据和数据类型intent.setDataAndType(Uri.parse("example://www.biao.cn/kl"),"image/jpeg");//激活启动//startActivity这个方法内部会添加android.intent.category.DEFAULT。所以要在过滤器中添加才能完全匹配startActivity(intent);}});
Intent意图的深入相关推荐
- android 之intent(意图)详解
如果一个Activity想启动另外一个Activity,则必须使用意图对象:intent. 意图(intent):想干嘛 意图的功能: A.激活组件 B.携带数据 意图的分类: A.显式意图:指定了要 ...
- 关于android Intent意图的一点心得
Intent 意图,android里通过它实现activity的指定跳转,一般可以通过它来传递某些参数给跳转到activity. 但是这中间也会出现一些问题,我以前没有注意到,最近在做项目的过程中才发 ...
- Android(Intent意图初解,显示意图,隐式意图,意图过滤器)
Android Intent 简介:Intent被称为意图,是安卓程序中的一种比较重要的组件间交户的方式,可以用于组件间的跳转,传递数据等.通常用作启动Activity,Service以及发送广播等. ...
- android小知识之意图(intent)
android中的意图有显示意图和隐式意图两种, 显示意图要求必须知道被激活组件的包和class 隐式意图只需要知道跳转activity的动作和数据,就可以激活对应的组件 A 主activity B ...
- 关于android隐式启动activity的分析和说明,Android学习之Intent中显示意图和隐式意图的用法实例分析...
本文实例讲述了Android学习之Intent中显示意图和隐式意图的用法.分享给大家供大家参考,具体如下: Intent(意图)主要是解决Android应用的各项组件之间的通讯. Intent负责对应 ...
- Intent使用意图之~添加Category
通过Intent意图可以跳转到不同的Activity页面,但是在意图Intent下有三个不同的字段分别是:action.Category.Data在程序中可以实现不同的功能:废话不多说接下来先来 ...
- Android -- Intent
Intent Android ...
- 如何使用意图将对象从一个Android活动发送到另一个?
如何使用Intent类的putExtra()方法将自定义类型的对象从一个Activity传递到另一个Activity ? #1楼 感谢您的包裹帮助,但我发现了另一种可选解决方案 public clas ...
- Android中的意图匹配--IntentFilter的作用
[0]Android基本的设计理念是鼓励减少组件间的耦合,因此Android提供了Intent (意图) ,Intent提供了一种通用的消息系统,它允许在你的应用程序与其它的应用程序间传递Intent ...
最新文章
- 判别模型和生成模型的区别
- C语言中的#ifndef、#def、#endif等宏
- larvel mysql count,php – 模型中的Laravel计数函数,然后sortBy count()
- 122亿元消费券引爆首都初夏,京东618如何成为经济复苏加速引擎
- 基于visual Studio2013解决C语言竞赛题之0502最小数替换
- Pandas 文本数据方法 slice( )
- 【编译器】VSCode配置Go语言开发环境
- CV学习笔记(六):均值滤波与高斯滤波
- 应用chroot构建最小运行系统
- Flink查询关联Hbase输出
- 生活随记 - 2020国庆第八天
- [转]一些漢字、字體/字型、内碼、輸入法資料的整理
- 《墨菲定律》——决策中的学问
- 高等教育学备考:教育学概述
- 备份微信聊天记录为 txt 格式保存(免 root)
- SAP ABAP ZBA_R005获得事务代码分段,完成关键用户参数权限
- Java之static静态对象
- 一个芯片工作的基本条件
- math-常见导数公式
- 如何使用WordPress建立亚马逊会员商店