意图

作者: 9283856ddec1 | 来源:发表于2020-02-08 21:59 被阅读0次

意图是Android用来发现识别Activity、Service、Receiver的机制,它在某些方面与Linux shell的搜索路径比较相似。利用搜索路径,shell在多个可能的目录中进行搜索,寻找与传给它的命令名相匹配的可执行文件。意图在清单列表中,通过<intent-filter>标签进行声明。主要分为两种:显式意图和隐式意图。

显式意图

显式意图直接指定一个准确的应用程序组件,相当于在Linux shell中给一条指令提供一条绝对路径。对于显式意图,最重要的是两个用来命名组件的字符串:目标应用程序的包名,以及组件的类名。例如:包名为com.example.email,类名为com.example.email.MailMainActivity。包管理通过包名返回应用程序需要的任何信息,如源码位置等。通过类名,可以得知需要 执行的是哪部分源码。

隐式意图

隐式意图(implict intent)描述所需组件的特点,而不直接指向该组件。这相当于在Linux shell中,给shell提供一条指令名,随后shell使用搜索路径来寻找一条待运行的具体指令。这个寻找与隐式意图相匹配的组件的过程叫意图解析。

意图解析有三种可能的结果:
(1)没有找到匹配的活动;
(2)仅找到一个匹配的活动;
(3)找到了多个能够出来该意图的活动。
空的匹配会导致空的结果或者一个异常,这取决于调用者在该处的期望返回类型。如果仅有一个匹配结果,系统会立即执行这个意图,此时它已转为显式意图。如果有多个匹配结果,则需要寻找其它解析方法使得结果唯一。
如果一个意图被解析为多个可能的活动,则不能同时执行它们,而是需要挑选一个执行。包管理器将这个意图解析为搭建在系统中的名为ResolverActivity的特殊活动,要求用户选择其中一个。做出选择后,它根据原意图和用户选择的活动创建一个新的显式意图,通知系统运行该活动。

参考文献:
[1] 现代操作系统

相关文章

  • 意图

    叶子不知秋风的意图 从此有了失落 落花不知流水的意图 从此有了永别 远帆不知灯塔的意图 从此有了守望 青春不知时光...

  • 意图

    文字停摆 思绪满山遍野地疯跑 不肯回巢 脑回路峰回路转处 意图就在嘴边 欲说还休 一边慵懒 一边催促 不知说什么 ...

  • 意图

    意图是Android用来发现识别Activity、Service、Receiver的机制,它在某些方面与Linux...

  • 意图

    对面那个男人很帅, 我知道你有想法, ——你想接近他, 你想跟他说话。 ——————————————— 你想了很久...

  • 意图

    昨天一位客户非常着急找到我,希望我给快速安排一个产品生产。 我连忙去到客户那里,发现本批次其他厂家的...

  • 意图

    5-18日,小智又给我打电话,我并没有接到,当时在忙,5-20日,他又给我打电话,说今天日子特殊,又是满口脏话,原...

  • 意图

    听了戴志强老师的智慧语言模式—意图,让我对妈妈和奶奶有了更多的了解,也放过了记忆里尘封的自己! 老师说:很多人的意...

  • 使用意图传递数据

    开启意图 接收意图

  • 今日意图|20181017

    小乔的意图20181017 仔细认真的看完《南极往南》 意图回顾:意图实现 感悟:早上我写下这个意图的时候,我不太...

  • 《古典:不确定时代,学会见招拆招的智慧》学习笔记

    关键词:执行意图、WOOP 执行意图就是你针对某个愿望的明确意图——简单说,就是你“具体要怎么做”。执行意图之所以...

网友评论

      本文标题:意图

      本文链接:https://www.haomeiwen.com/subject/cvsmxhtx.html