根据Android文档Intent额外名称必须有包前缀。我一直使用Intent额外名称而且没有前缀很长一段时间,似乎没有碰撞的机会,因为真正重要的是Intent行为是唯一的。那么这些文档是错的还是我错过了一些东西?为什么Android文档说意图额外需要包前缀
为putExtra文档说:
扩展数据添加到意图。该名称必须包含包前缀,例如com.android.contacts应用程序将使用“com.android.contacts.ShowAll”之类的名称。
根据Android文档Intent额外名称必须有包前缀。我一直使用Intent额外名称而且没有前缀很长一段时间,似乎没有碰撞的机会,因为真正重要的是Intent行为是唯一的。那么这些文档是错的还是我错过了一些东西?为什么Android文档说意图额外需要包前缀
为putExtra文档说:
扩展数据添加到意图。该名称必须包含包前缀,例如com.android.contacts应用程序将使用“com.android.contacts.ShowAll”之类的名称。
我相信Android文档推荐使用完全合格的演员来处理不常见的边缘情况。边缘的情况是,当你:
和
唷,这一切听起来都不太可能。如果你没有处理公开的意图行为,那么它似乎仍然没有必要完全限定你的额外行为,但是如果你是偏执狂类型的话,我认为它始终没有伤害。
意图可以传递到其他应用程序和它自己的系统,所以礼貌是使用包名称空间。
我不明白为什么它会礼貌。为什么系统或其他应用程序正在看我的演员,他们不应该盲目地传递它吗?其次,这个动作有包名,为什么每一个额外都需要它? – satur9nine
难道你不只是提供一个额外的包?在类似这样的情况下,您最好首先检查其原始包,然后基于此处理Extras,除非某些发送的活动可以添加其他发送活动的含义(这可能最终导致混乱,但如果您设置某种代理活动或服务来操纵其传递的意图的附加内容,可能会有用。 – JAB
我同意@JAB。默认情况下,您不会基于请求者处理任何不同的“额外”意图数据,但如果您要这样做,则需要提供包名称作为额外的“额外”意图数据,所以你可以很容易地区分**和**验证? –
您可以提供并要求您的软件包名称作为又一个额外的内容,并且可以确保您的应用程序安全,但其他应用程序不会检查该非标准附加内容。因此,如果您使用公开意向操作,并未完全限定所有非标准附加名称,则可能会破坏其他应用程序。 – satur9nine