Intent 和 Intent 过滤器

Android--Intent和过滤器,Android性能优化推荐书 MainActivity代码: Intent intent = new Intent(); intent.setAction(“com.example.testIntent.ACTION_TEST”); intent.addCategory(“com.example.testIntent.CATEGORY_TEST”); startActivity(intent); 只有action和Category同时匹配时,才能响应这个Intent。intent Filter中如果category没有指定,必须使用默认 阅读详情

基本用途

  1. 启动Activity
  2. 启动Service
  3. 传递广播

Intent类型

  • 显式Intent:按照名称指定要启动的组件。
  • 隐式Intent:不会指定特定的组件,而是声明要执行的操作,从而允许其他应用中的组件来处理它。

创建显式Intent启动Activity或服务时,系统将立即启动Intent对象中指定的应用组件。

创建隐式Intent时,Android系统将通过Intent的内容与设备上其他的应用在清单文件中声明的Intent过滤器进行比较,从而找到要启动的组件。如果Intent与Intent过滤器匹配,系统将启动该组件,并向其传递Intent对象。如果有多个Intent过滤器兼容,则系统会显示对话框,供用户进行选择要使用的应用。
隐式Intent
图 1. 隐式 Intent 如何通过系统传递以启动其他 Activity 的图解:[1] Activity A 创建包含操作描述的 Intent,并将其传递给 startActivity()。[2] Android 系统搜索所有应用中与 Intent 匹配的 Intent 过滤器。 找到匹配项之后,[3] 该系统通过调用匹配 Activity(Activity B)的 onCreate() 方法并将其传递给 Intent,以此启动匹配 Activity。

构建Intent

1. 组件名称

如果要是使用显式Intent,则必须指定组建的名称,否则就是隐式Intent。
启动服务,必须使用显式Intent。

2. 操作

指定要执行的通用操作(例如,“查看”或“选取”)的字符串。
可以使用系统的标准Action,也可以自定义。
隐式Intent必须指定Action。

3. 数据

引用待操作数据和该数据 MIME 类型的 URI(Uri 对象)。
要仅设置数据 URI,请调用 setData()。 要仅设置 MIME 类型,请调用 setType()。如有必要,可以使用 setDataAndType() 同时显式设置二者。

4. 类别

一个包含应处理 Intent 组件类型的附加信息的字符串。 
以上列出的这些属性(组件名称、操作、数据和类别)表示 Intent 的既定特征。 
通过读取这些属性,Android 系统能够解析应当启动哪个应用组件。
如需Activity 接收隐式 Intent,则必须将 "android.intent.category.DEFAULT" 的类别包括在其 Intent 过滤器中

5. Extra

携带完成请求操作所需的附加信息的键值对。

6. 标志

Intent 类中定义的、充当 Intent 元数据的标志。 
标志可以指示 Android 系统如何启动 Activity,以及启动之后如何处理。

可以传递的数据类型

通过查询Intent/Bundle的API文档,我们可以获知,Intent/Bundle支持传递基本类型的数据和基本类型的数组数据,以及String/CharSequence类型的数据和String/CharSequence类型的数组数据。而对于其它类型的数据貌似无能为力,其实不然,我们可以在Intent/Bundle的API中看到Intent/Bundle还可以传递Parcelable(包裹化,邮包)和Serializable(序列化)类型的数据,以及它们的数组/列表数据。

所以要让非基本类型和非String/CharSequence类型的数据通过Intent/Bundle来进行传输,我们就需要在数据类型中实现Parcelable接口或是Serializable接口。

Android开发:Intents与Intent过滤器简明教程 上述代码中,我们声明了一个活动组件(MainActivity),使用Intent过滤器来指定该组件可以处理"android.intent.action.VIEW"操作,并且可以处理以"http"为协议的数据。Intents允许不同组件之间进行通信和交互,而Intent过滤器允许我们在清单文件中声明组件可以接收哪些Intents。上述代码中,我们创建了一个Intent对象,并指定了要启动的目标活动(SecondActivity)。在本文中,我们提供了创建Intents和声明Intent过滤器的示例代码。 阅读详情

相关推荐

显式和隐式、过滤器intent的使用

显式和隐式、过滤器intent的使用,欢迎有需要的朋友下载!

三、Intent 和 Intent过滤器(IntentFilter)

Intent(意图): Intent 是一个消息传递对象,是我们要执行操作的一个抽象描述。我们可以使用它在相应的组件中传递消息和请求。下面是它的主要使用场景: 1. 启动Activity 通过 startActivity() 或者 startActivityForResult() 。参数 intent 描述了要启动的 activity 以及可以携带希望传递给新 act...

丶一个有梦想的老实人 的博客 2875

用PLECS搞定三相逆变器电流环:从传递函数推导到PI参数整定的保姆级教程

本文提供了一份详细的PLECS教程,指导如何从传递函数推导到PI参数整定,实现三相逆变器电流环的闭环控制。通过坐标变换、控制器设计和仿真验证等步骤,帮助工程师快速掌握电流环控制技术,提升电力电子系统的稳定性和可靠性。

weixin_27102543的博客 399

Android学习之Intent过滤器的使用

Intent过滤器我们的app的功能可能对别的app也有用,那么我们的app应该做好响应其他APP的准备。例如,一个社交app,它可以分享信息或者照片给好友,那么最好我们的app能够接收ACTION_SEND的intent,这样当用户在其他app触发分享功能的时候,我们的app也能够出现在待选对话框。通过在manifest文件中的<activity>标签下添加<intent-filter>属性,能使

一大三千的博客 5093

Java判断地图坐标(经度,纬度)是否在多边形区域或圆形区域内

​欢迎光临我的博客查看最新文章:在地图上,可以使用经纬度确定一个位置,如上海体育场(121.449391,31.188228),如果知道了2个地点的经纬度,我们就能在地图上找到其位置及2点的距离,百度地图或高德地图提供了相应的服务;如果将多个坐标点连成多边形区域,如何判断某个坐标点是否在多边形区域内,如下工具类。

river106的博客 3942

泛微OA与金蝶云星空深度集成实战:审批与表单双场景解析

本文深入解析泛微OA与金蝶云星空的深度集成实战,聚焦审批流程与表单对接两大核心场景。通过具体案例,详细阐述了如何实现业务数据与审批流程的自动联动,打破数据孤岛,提升企业运营效率与数据一致性,并分享了接口设计、安全策略及实战避坑指南。

4k5l6j7h8的博客 466

Intent过滤器

隐式启动Activity时,并没有在Intent中指明Acitivity所在的类,因此,Android系统一定存在某种匹配机制,使Android系统能够根据Intent中的数据信息,找到需要启动的Activity。这种匹配机制是依靠Android系统中的Intent过滤器(Intent Filter)来实现的。

yhao的博客 4485

从零构建企业级多智能体系统:LangGraph 全流程实战 + 部署指南(含代码与架构图)

> 在大模型应用爆发的今天,如何构建一个可协作、可调试、可部署的多智能体系统?LangGraph 正在成为工程师的新宠。本文从原理剖析、流程建模、代码实战到前后端部署,手把手带你用 LangGraph 构建一个企业级 AI 助理系统,整合财务分析、法务审阅、报告生成与图表可视化等 Agent 模块,全面打通从用户输入到报告输出的全链路闭环。适合有工程思维的 AI 架构师、Agent 研发人员、以及大模型项目实践者。

努力分享一些人工智能、计算机视觉、影像等相关的知识干货! 3449

Android 中Intent 和 Intent 过滤器

Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动 Activity: Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),您可以启动新的 Activity 实例。Intent 描述了要启动的 Activity,并携带了任

Hedong的博客 702

【异常】安装hermes-agent提示Git克隆仓库网络中断 fetch-pack: unexpected disconnect while reading sideband packet

本文分析了Git克隆仓库时出现网络中断错误的常见原因及解决方案。报错表现为连接被远程主机关闭、管道破裂或数据包意外终止,通常由网络不稳定、仓库过大或配置不当引起。提供了5种优先级排序的解决方法:1)使用浅克隆减少数据量;2)优化Git配置参数;3)切换网络或配置代理;4)检查SSH密钥设置;5)改用HTTPS方式克隆。特别推荐先尝试「浅克隆+HTTPS」组合方案快速验证,若问题持续再根据具体报错深入排查。文中包含详细的命令示例和配置说明,适合不同网络环境下的Git用户参考。

奶爸的编程之路,也就一周冷个三天 1418

【图像去噪】论文复现:CLIP用于图像去噪提升泛化性!CLIPDenoising的Pytorch源码复现,跑通CLIPDenoising全流程,图文结合,网络结构梳理和拆解,对应源码注释!

论文题目:Transfer CLIP for Generalizable Image Denoising —— 用于可泛化图像去噪的转移CLIP。【图像去噪】论文精读:Transfer CLIP for Generalizable Image Denoising(CLIPDenoising)CLIPDenoising理论部分详解见上面对应的论文精读,本文以源码为主,理论部分只是粗略回顾。启发:多看其他领域的文章,分析是否能应用在去噪领域,这是产生idea的要素之一;

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1413

Android 之Intent和Intent过滤器

基础     Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个:     启动 Activity:     Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),您可以启动新的 Activity 实例。Intent 描述了要启动的 Ac

anxpp的博客 1782

领域知识图谱构建的技术流程

因此概念的属性定义十分重要,通常大部分知识库中的概念属性都是采用人工定义等方式生成的,通用知识图谱则可以从开放数据集中获取概念的属性,然后从在线百科中学习实体的属性,并对实体属性进行往上规约从而生成概念的属性。由于百科的分类体系都是经过了百科管理员或是高级编辑人员的校验,其分类系统中的数据可靠性非常高,因此从百科中抽取概念和实体,通常将标题作为实体的候选,而将百科中的分类系统直接作为概念的候选。为了对知识进行合理的组织,更好地描述知识本身与知识之间的关联,需要对知识图谱的模式进行良好的定义。

weixin_43961909的博客 334

Android基础之Intent 和 Intent 过滤器

长日尽处,我站在你的面前,你将看到我的疤痕,知道我曾经受伤,也曾经痊愈。

Wtoria的博客 4660

海康网口相机不能被flexscan3d识别到MVS版本为4.6.1,flex为3.3.24在MVS中能够检测到,但是在flex中只能看到电脑自带相机,如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1042

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android intent过滤器,Android- Intent与Intent过滤器

IntentIntent是一种对准备进行的操作的抽象描述,它是一个消息传递对象,用来从其他应用组件请求操作。通常用于启动Activity,启动Service,传递Broadcast。Intent类型Intent分为两种类型:显式和隐式。显式Intent通过提供目标应用的软件包名称或完全限定的组件类名来指定可处理 Intent 的应用。代码示例如下:public static final Strin...

weixin_35192920的博客 286

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Intent和Intent过滤器

Intent和Intent过滤器Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动Activity : Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity(),您可以启动新的 Activity 实例。Intent 描述了要启动的 Activit

listeners_Gao的专栏 802

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

安卓API指南之Intent 和 Intent 过滤器

本系列的文章全部为学习摘要,不偏重各种细节展示,更多的是安卓体系重要节点的罗列,并适时加入少量自己的理解分析,以便能快速的回顾安卓体系结构和那些重要的技术点。 Intent 是一个消息传递对象,您可以使用它从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信,但其基本用例主要包括以下三个: 启动 Activity:通过将 Intent 传递给 startActivity()

CysionLiu的博客 482

Intent使用和Intent过滤器

Intent使用和Intent过滤器Inten可以分成显式和隐式。 显式Intent:组件名称来指定目标组件。 隐式Intent:不指定组件名称,通常用于激活其他应用程序中的组件。 Intent过滤器(IntentFilter)功能:处理显式Intent和隐式Intent 如果组件不含有过滤器,只能接受显式Intent在使用Intent过滤器测试Intent对象时,仅测试三个方面:Action,

Luven777的博客 836
上一篇: Android的数据存储形式
下一篇: Android动画
bullshit_baidu
博客等级 码龄11年 4粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值