intent filter 应该叫 intent picker 或 intent receiver 更合乎语义
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了intent filter 应该叫 intent picker 或 intent receiver 更合乎语义相关的知识,希望对你有一定的参考价值。
安卓的开发者指南上说:
The system will deliver an implicit intent to your app component only if the intent can pass through one of your intent filters.
filter 的一般含义意指过滤掉不需要的事物, 只留下需要的。它的主要功能应该是“滤除”, 而不是“保留”。应该用在有大量的备选对象的情景之下,用于去除多数不合乎需求的对象, 仅留下需要少数几个。(吐槽一下object为何要翻译成对象?就叫物件有什么不好?)
安卓的 intent filter 一词容易给我留下的第一印象是: “一大堆 intents 在系统里乱窜, 各个程序组件使用 intent filter 滤除自己不需要的intents, 接收通过了过滤器的intents。 ”
然而实际情况是:“一个组件发出一个intent, 系统比对此intent的描述信息 与 其他组件的 intent filter, 配对成功就把intent 发给配对成功的组件, 即便是有多个组件配对成功, 用户也只能选择其中一个来接收该intent。”
所以说只有一个intent, 一个备选对象, 为什么要过滤? 既然接收动作的主体是配对成功的component, 那么就由此component pick 或 receive 此 intent 不是更合乎描述的场景吗?
所以我认为 intent filter 应该叫 intent picker, 或者 intent receiver, 或者 intent consumer, 都比 filter 更易于理解.
以上是关于intent filter 应该叫 intent picker 或 intent receiver 更合乎语义的主要内容,如果未能解决你的问题,请参考以下文章
android基础:Intents 和 intent-filter 的匹配规则