Intent用于启动Activity,Service或发送Broadcast。Intent的使用有隐式和显式之分,即Explicit Intent和Implicit Intent。

Explicit Intent是指,能够明确指定class,或者package name的Intent。例如

Intent i = new Intent(Context,SecondActivity.class);
startActivity(i); 

Implicit Intent是指,使用action,data或categroy的filter方式。

Intent intent = new Intent("myaction");
startActivity(intent); 
Intent intent = new Intent();
intent.setAction("myAction");
intent.addCategory("myCategory");
startActivity(intent);  

在同一APP种,两种方式都可以使用。相对而言,隐式可以降低耦合,而显式效率更高。

若要跨APP,则必须使用隐式。

需要注意的是,在Android 5.0之后,跨进程调用Service,需要使用显式的方法,否则将会报错。

java.lang.IllegalArgumentException: Service Intent must be explicit: Intent { act=com.breakloop.servicedemo.MyService }

解决方案有两种。

(1)添加App Package Name.

Intent mIntent = new Intent();
mIntent.setAction("serviceAction");
mIntent.setPackage("servicePackageName");
context.startService(mIntent);

(2)将隐式Intent进行嵌套,封装为显式Intent

Intent mIntent = new Intent();
mIntent.setAction("serviceAction");
Intent eintent = new Intent(getExplicitIntent(mContext,mIntent));
context.startService(eintent);

Explicit Intent Implicit Intent相关推荐

  1. Android中Intent和Intent过滤器详解

    众所周知,Android开发中,Intent是个比较常见的应用组件,今天,我就参考Google官方文档书写一次详细的从头到尾的博文. *Intent是一个消息传递对象,可以使用它从其他应用组件请求操作 ...

  2. .net转换关键字:operator、explicit与implicit

    operator.explicit与implicit 很少用到,但也不能不知道,发现这篇写很好,转一篇 operator operator 关键字用于在类或结构声明中声明运算符.运算符声明可以采用下列 ...

  3. operator、explicit与implicit

    说这个之前先说下什么叫隐式转换和显示转换 1.所谓隐式转换,就是系统默认的转换,其本质是小存储容量数据类型自动转换为大存储容量数据类型. 例如:float f = 1.0: double d=f:这样 ...

  4. Android Intent And Intent Filter

    2019独角兽企业重金招聘Python工程师标准>>> 1.概述 一个应用程序的三个核心组件--activities.services.broadcast receivers,都是通 ...

  5. android intent和intent action大全

    不管是页面牵转,还是传递数据,或是调用外部程序,系统功能都要用到intent. 在做了一些intent的例子之后,整理了一下intent,希望对大家有用. 由于intent内容太多,不可能真的写全,难 ...

  6. AAC Explicit or Implicit SBR PS issue

    最近在做AAC V1/V2 decoder时, 有客户要支持 Explicit or Implicit SBR & PS, such as VOT = 2, VOT = 5, 能很好的支持SB ...

  7. 重拾Activity(二)Intent和Intent过滤器

    目录 Intent 类型 显式 Intent 示例 隐式 Intent 示例 强制使用应用选择器 接收隐式 Intent 限制对组件的访问 常用Intent 闹钟 创建闹铃 创建定时器 显示所有闹铃 ...

  8. [翻译] TensorRT 中的 Explicit 与 Implicit Batch

    本文翻译自 Explicit Versus Implicit Batch 原文地址: https://docs.nvidia.com/deeplearning/tensorrt/developer-g ...

  9. Intent 和 Intent 过滤器

    Intent 和 Intent 过滤器 本文内容 Intent 类型 构建 Intent 显式 Intent 示例 隐式 Intent 示例 强制使用应用选择器 接收隐式 Intent 过滤器示例 使 ...

最新文章

  1. 缓存在哪里_APP下载的视频都在哪?教你将缓存视频拿出来
  2. 如何优雅的实现 Spring Boot 接口参数加密解密?
  3. 【每日DP】day 9、P1156 垃圾陷阱(神奇的背包,时间节点处理)难度⭐⭐⭐
  4. Ajax弹出式无刷新城市选择特效
  5. 虚拟化:IT技术的第三次革命
  6. 一个完美网站的101项指标(转)
  7. webstorm最新破解方法
  8. 年末巨制:知识图谱嵌入方法研究总结
  9. Meta标签详解,太重要了
  10. PAT:1001. 害死人不偿命的(3n+1)猜想 (15) AC
  11. 那些天天都在野外钓鱼的人不上班吗,有收入吗?
  12. js回文数的四种判断方法
  13. cross-env跨平台设置环境变量
  14. 拓端tecdat|R语言模拟ARCH过程模型分析时间序列平稳性、波动性
  15. 鸿蒙系统操作界面跟苹果很像,华为鸿蒙系统的操作界面可能长这样 和安卓全完不同而且图标也太酷了...
  16. 嵌入式开发 | 嵌入式开发设计文档该怎么写?
  17. 每日一记—蓝牙模块应用(一)
  18. 软件测试工程师面试题之数据库
  19. MCGS实现按键按一次按下,再按一次弹起
  20. 每日一题:给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

热门文章

  1. ncnn填坑记录一:安装protobuf、cmake和opencv
  2. acm第三次培训3 Problem D: 哧溜的位运算2
  3. 使用Python开发DeFi项目
  4. Linux下的 c 多线程与线程同步(二)
  5. Muduo 作者陈硕访谈实录
  6. “小镇做题家”:难免挣扎,不必自卑!
  7. FineUI初学手册-部分JS整理
  8. 图像感知质量指标完全使用指南---perceptual index
  9. 三明一中2021查询高考成绩,2021年三明高中学校排名及录取分数线排名
  10. 三菱PLC控制—天塔之光