Android Intent知识总结
Android Intent 知识总结整理日期2026-07-30覆盖显式/隐式 Intent、Intent Filter、PendingIntent、Flag、安全限制与现代 API官方Intents and Intent Filters目录1. 是什么2. 能启动什么3. 显式 vs 隐式4. Intent 核心字段5. Intent Filter 匹配规则6. 常用 Action / Category / Data7. 传递数据8. 启动与结果回调9. Intent Flag10. PendingIntent11. 广播中的 Intent12. 安全与高版本限制13. 常见坑14. 速查 Checklist15. 优缺点与选型16. 参考链接1. 是什么Intent是 Android 组件间通信的消息对象描述「要做什么」启动 Activity / Service发送广播携带 action、data、category、extras、component 等信息系统根据 Intent 找到目标组件解析匹配或显式指定。发送方 ── Intent ──→ 系统AMS──→ 目标组件注意Intent不是通用 RPC跨进程大数据、持续通信应使用 Binder / AIDL / ContentProvider 等。2. 能启动什么目标API说明ActivitystartActivity/startActivityForResult旧/ Activity Result API可带 Flag、结果回传ServicestartService/startForegroundService/bindService后台限制多优先评估 WorkManager / FGSBroadcastReceiversendBroadcast/sendOrderedBroadcast显式广播更安全其他 App隐式 Intent 或显式指定包名/组件受包可见性、exported 影响3. 显式 vs 隐式3.1 显式 IntentExplicit明确指定目标组件类名或ComponentName应用内首选。valintentIntent(this,DetailActivity::class.java).apply{putExtra(EXTRA_ID,id)}startActivity(intent)优点匹配确定、安全、不受 Filter 干扰缺点需知道目标类跨应用时耦合包名/组件名3.2 隐式 IntentImplicit不指定组件靠action category data与 Manifest 中intent-filter匹配。valintentIntent(Intent.ACTION_VIEW,Uri.parse(https://example.com))startActivity(intent)优点解耦、可调起系统/其他 App浏览器、分享、相机缺点可能匹配多个或零个安全与可见性限制多解析相关resolveActivity/queryIntentActivities是否有处理器多个匹配时系统弹出选择器可用Intent.createChooser强制选择器4. Intent 核心字段字段作用Component显式目标组件Action要执行的通用动作字符串DataUri如content://、https://、tel:TypeMIME如image/*、application/pdf可与 Data 联动Category额外类别如CATEGORY_DEFAULT、LAUNCHERExtrasBundle键值对载荷Flags影响任务栈、权限授予等行为Package限制只匹配某包名半显式关系示意Intent ├─ component? → 有则显式不再走 filter 匹配 ├─ action / category ├─ data (uri) type ├─ extras (Bundle) └─ flags设置 Data 与 Type 时注意setData会清 typesetType会清 data需同时设时用setDataAndType。5. Intent Filter 匹配规则目标组件在 Manifest 声明intent-filter后隐式 Intent 需同时满足5.1 ActionIntent 的 action 必须与 Filter 中某一个action 相同Filter 无 action 则匹配不带 action 的 Intent少见5.2 CategoryIntent 中的每个category 都必须在 Filter 中出现startActivity会自动加CATEGORY_DEFAULT故 Activity 的 filter几乎必须写categoryandroid:nameandroid.intent.category.DEFAULT/5.3 Data按 URI 的 scheme / host / port / path / pathPrefix / pathPattern 以及 mimeType 匹配。多个data会组合成可匹配集合具体以官方匹配算法为准。示例activityandroid:name.WebActivityandroid:exportedtrueintent-filteractionandroid:nameandroid.intent.action.VIEW/categoryandroid:nameandroid.intent.category.DEFAULT/categoryandroid:nameandroid.intent.category.BROWSABLE/dataandroid:schemehttpsandroid:hostwww.example.com//intent-filter/activityDeep Link / App LinksBROWSABLEhttps Digital Asset Links 验证。6. 常用 Action / Category / Data6.1 常见 ActionAction用途ACTION_MAIN入口配合CATEGORY_LAUNCHERACTION_VIEW查看数据链接、地图、文件ACTION_SEND/ACTION_SEND_MULTIPLE分享ACTION_DIAL/ACTION_CALL拨号CALL 需权限ACTION_EDIT编辑ACTION_PICK/ACTION_GET_CONTENT/ACTION_OPEN_DOCUMENT选择内容推荐 SAFACTION_CREATE_DOCUMENT创建文档SAFACTION_WEB_SEARCH网页搜索ACTION_BATTERY_LOW等系统广播多已限制静态注册自定义 action 建议用包名反域com.example.app.ACTION_SYNC。6.2 常见 CategoryCategory用途CATEGORY_DEFAULTActivity 隐式启动必需CATEGORY_LAUNCHER桌面图标入口CATEGORY_BROWSABLE可被浏览器/链接唤起6.3 Data 示例Intent(Intent.ACTION_VIEW,Uri.parse(geo:0,0?qBeijing))Intent(Intent.ACTION_DIAL,Uri.parse(tel:10086))Intent(Intent.ACTION_SEND).apply{typetext/plainputExtra(Intent.EXTRA_TEXT,hello)}7. 传递数据7.1 Extrasintent.putExtra(key_string,value)intent.putExtra(key_int,1)intent.putExtra(key_parcelable,user)// Parcelable / 推荐 Parcelizevalbundleintent.extras注意说明体积Intent 载荷有 Binder 事务大小限制常见约 1MB 量级宜远小于此大图/大列表用Uri、磁盘缓存、ViewModel、单例仓库勿塞巨型 Bitmap类型安全可用类型安全封装或 Navigation Safe Args7.2 ClipData / URI 权限分享文件时valintentIntent(Intent.ACTION_SEND).apply{typeapplication/pdfputExtra(Intent.EXTRA_STREAM,contentUri)addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)clipDataClipData.newUri(contentResolver,pdf,contentUri)}使用FileProvider提供content://Uri避免file://与FileUriExposedException。8. 启动与结果回调8.1 只启动startActivity(intent)// 跨任务栈常见// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)8.2 需要返回结果现代写法vallauncherregisterForActivityResult(ActivityResultContracts.StartActivityForResult()){result-if(result.resultCodeRESULT_OK){valdataresult.data}}launcher.launch(Intent(this,EditActivity::class.java))常用 ContractTakePicture、GetContent、OpenDocument、RequestPermission等。目标页返回setResult(RESULT_OK,Intent().putExtra(result,value))finish()旧 APIstartActivityForResult/onActivityResult已不推荐。9. Intent Flag9.1 任务栈相关ActivityFlag作用FLAG_ACTIVITY_NEW_TASK在新任务中启动非 Activity Context 常必需FLAG_ACTIVITY_CLEAR_TOP若栈中已有目标清除其上 Activity 并复用/重建FLAG_ACTIVITY_SINGLE_TOP栈顶已是目标则不新建走onNewIntentFLAG_ACTIVITY_CLEAR_TASK常与 NEW_TASK 联用清空目标任务再启动FLAG_ACTIVITY_NO_HISTORY离开后不留在栈中FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS不进最近任务与launchModesingleTop/singleTask等共同决定实例复用需结合测试。9.2 URI 权限相关Flag作用FLAG_GRANT_READ_URI_PERMISSION授予接收方读 UriFLAG_GRANT_WRITE_URI_PERMISSION授予写FLAG_GRANT_PERSISTABLE_URI_PERMISSION可持久化需再 takePersistable9.3 其他Flag作用FLAG_ACTIVITY_NEW_DOCUMENT文档式多任务近年多窗场景Receiver 相关如FLAG_RECEIVER_FOREGROUND等按场景查阅10. PendingIntentPendingIntent交给其他应用/系统通知、闹钟、桌面小部件的「延迟触发 Intent 令牌」由系统持有发送身份按创建时的权限与身份。valintentIntent(context,TargetActivity::class.java)valpendingPendingIntent.getActivity(context,requestCode,intent,PendingIntent.FLAG_UPDATE_CURRENTorPendingIntent.FLAG_IMMUTABLE)工厂方法用途getActivity拉起 ActivitygetBroadcast发广播getService/getForegroundService启服务可变性Android 12 强制必须指定其一FLAG_IMMUTABLE不可被填充修改默认推荐FLAG_MUTABLE允许后续修改如内联回复、需填充 Extra 的场景常与FLAG_UPDATE_CURRENT/FLAG_CANCEL_CURRENT/FLAG_ONE_SHOT组合。优点系统组件可代为拉起 App权限模型清晰缺点Flag 用错易安全漏洞或无法更新后台启动 Activity 仍受限11. 广播中的 Intent// 发送sendBroadcast(Intent(ACTION_CUSTOM).setPackage(packageName))// 显式包名更安全// 动态注册API 34 必须指定导出标志ContextCompat.registerReceiver(context,receiver,IntentFilter(ACTION_CUSTOM),ContextCompat.RECEIVER_NOT_EXPORTED)点说明显式广播指定组件或 package避免被第三方窃听隐式 静态注册Android 8 大量禁止有序广播sendOrderedBroadcast可中止传播LocalBroadcastManager已废弃改用应用内事件Flow 等12. 安全与高版本限制版本/主题影响Android 11 包可见性查询/调起其他 App 需queries或可见性例外Android 12 exported含 intent-filter 的组件必须声明android:exportedAndroid 12 PendingIntent必须 IMMUTABLE 或 MUTABLEAndroid 12 隐式 Intent向非导出组件发送隐式 Intent 受限匹配规则更严Android 10 BAL后台启动 Activity 严格限制通知 PendingIntent 等有例外路径Android 14动态广播必须指定 exportedIntentSender/BAL 继续收紧File Uri禁止暴露file://给其他 App用 FileProvider原则应用内通信 →显式 Intent对外能力 → 最小化exportedtrue 权限分享文件 →content:// Grant Uri Permission调外部 App → 先resolveActivity并声明queriesqueriesintentactionandroid:nameandroid.intent.action.VIEW/dataandroid:schemehttps//intentpackageandroid:namecom.other.app//queries13. 常见坑现象原因处理ActivityNotFoundException无匹配或包不可见resolveActivity补queries隐式启不起来缺CATEGORY_DEFAULTFilter 加上 DEFAULTsetType后 data 丢了API 互斥用setDataAndTypeTransactionTooLargeExtras 过大改传 Uri/ID通知点了没反应PendingIntent Flag/后台限制IMMUTABLE/UPDATE符合 BAL 例外分享图片对方打不开未授权 Uri / 未设 ClipDataFLAG_GRANT_READ ClipData非 Activity Context 崩溃缺NEW_TASK加FLAG_ACTIVITY_NEW_TASKonNewIntent没走未 singleTop/Flag检查 launchMode 与 Flag14. 速查 Checklist应用内跳转是否全部显式Activity 隐式 filter 是否含DEFAULT及需要的BROWSABLE含 filter 的组件是否声明exported对外调起是否声明queriesExtras 是否够小大对象是否改 Uri文件分享是否 FileProvider Grant 权限PendingIntent 是否含IMMUTABLE/MUTABLE结果回调是否已迁 Activity Result APIService/广播是否符合后台与导出新规15. 优缺点与选型Intent 机制整体优点系统级解耦易调起系统能力组件模型统一缺点隐式匹配与安全策略复杂载荷大小受限后台行为年年收紧怎么选场景建议同 App 页面跳转显式 Intent / Navigation 组件要返回结果Activity Result API打开链接/分享/选文件隐式 Intent 系统 Contract通知/小组件/闹钟PendingIntentIMMUTABLE 优先应用内事件总线不要用隐式广播用 Flow / 共享 ViewModel跨 App 结构化数据ContentProvider而非塞巨型 Extra16. 参考链接Intents and Intent FiltersCommon IntentsPendingIntentActivity Result APIPackage visibilityShare files with FileProvider一句话Intent 描述「要做什么」应用内用显式跨应用用隐式 Filter数据走 Extras/Uri系统代发用 PendingIntent始终处理exported、包可见性、Uri 权限与后台启动限制。

相关新闻

求助!!请大家帮忙看看我的嵌入式规划

求助!!请大家帮忙看看我的嵌入式规划

本人某末2的电子专业,开学大二,下个暑假想去找实习,请大家看看我这样规划能不能行

2026/7/31 14:25:29 阅读更多 →
数据资产目录:从元数据管理到数据治理的实践指南

数据资产目录:从元数据管理到数据治理的实践指南

1. 从“数据沼泽”到“数据绿洲”:为什么你的团队需要一个资产目录如果你在数据团队待过一段时间,大概率听过这样的对话:“我们去年不是做过一个用户画像项目吗?那个模型文件放哪了?”“财务部要的那个季度销售报表&am…

2026/7/31 14:25:24 阅读更多 →
Windows安卓应用安装终极指南:3分钟快速掌握APK Installer完整使用

Windows安卓应用安装终极指南:3分钟快速掌握APK Installer完整使用

Windows安卓应用安装终极指南:3分钟快速掌握APK Installer完整使用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK Installer是一款专为Windows平台设计…

2026/7/31 14:25:20 阅读更多 →

最新新闻

Python获取文件大小:四种方法详解与实战选型指南

Python获取文件大小:四种方法详解与实战选型指南

1. 从“文件大小”这个看似简单的需求说起 在Python里处理文件,获取文件大小几乎是绕不开的基础操作。无论是写一个日志清理脚本,还是开发一个文件同步工具,又或者仅仅是检查一下下载的文件是否完整,你都得先知道这个文件到底有多…

2026/7/31 15:10:59 阅读更多 →
智慧校园管理系统开发公司Top5,选型并非简单地按图索骥

智慧校园管理系统开发公司Top5,选型并非简单地按图索骥

引言:智慧校园选型的复杂性 在数字化转型浪潮下,智慧校园管理系统已成为高校、中小学提升管理效率、优化教学体验、实现数据驱动决策的核心基础设施。然而,面对市场上琳琅满目的供应商和解决方案,许多学校在选型时往往陷入“按图…

2026/7/31 15:10:59 阅读更多 →
2026年性价比高的建站公司怎么选?年费、设计与维护成本指南

2026年性价比高的建站公司怎么选?年费、设计与维护成本指南

很多企业搜索“性价比高的建站公司”,容易把性价比理解为首次报价最低。但网站需要长期更新、续费和维护,真正的质价比来自功能匹配、页面质量、上线效率和后续成本可控。标准企业官网如果直接选择复杂定制开发,可能投入过高;只购…

2026/7/31 15:10:59 阅读更多 →
2026年小程序卖货平台搭建哪家好?交易能力、费用与运营条件对比

2026年小程序卖货平台搭建哪家好?交易能力、费用与运营条件对比

商家搜索“小程序卖货平台搭建哪家好”,通常不只是想做一个商品页面,而是希望完成商品上架、在线支付、会员沉淀和营销转化。平台能否长期使用,取决于交易闭环和运营门槛,而不是模板看起来是否丰富。商品数量较少、交易规则标准的…

2026/7/31 15:10:59 阅读更多 →
企业HR合同数字化管理实操:从入职签约到离职流转的全链路方案

企业HR合同数字化管理实操:从入职签约到离职流转的全链路方案

人力资源是电子合同渗透最快的行业场景之一。原因很简单:HR部门是企业里合同量最大、重复性劳动最多、痛点最集中的部门之一。 一家千人规模的企业,仅劳动合同一项,每年的签署量就可能达到数千份。新员工入职签劳动合同,试用期转正…

2026/7/31 15:10:59 阅读更多 →
3小时变30分钟:OpCore-Simplify如何重新定义Hackintosh配置体验

3小时变30分钟:OpCore-Simplify如何重新定义Hackintosh配置体验

3小时变30分钟:OpCore-Simplify如何重新定义Hackintosh配置体验 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经为了在非苹果硬…

2026/7/31 15:09:59 阅读更多 →

日新闻

物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:34 阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:34 阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:34 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/31 1:03:03 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/31 4:19:39 阅读更多 →

月新闻