为什么Android文档说意图附加需要包前缀

时间:2012-09-04 18:04:38

标签: android android-intent

根据Android docs Intent额外名称必须有一个包前缀。我一直在使用没有前缀的Intent额外名称,似乎没有碰撞的机会,因为真正重要的是Intent动作是独一无二的。那些文档是错的还是我错过了什么?

putExtra的文档说:

将扩展数据添加到intent中。名称必须包含包前缀,例如app com.android.contacts将使用“com.android.contacts.ShowAll”之类的名称。

3 个答案:

答案 0 :(得分:19)

我相信Android文档建议使用完全合格的附加功能来处理不常见的边缘情况。边缘情况就是:

  • 编写可以使用公共Intent操作(如Intent.ACTION_VIEW
  • )启动的Activity

  • 对于您自己的用法,您希望能够将自定义附加内容传递给上述活动,而不会干扰另一个执行完全相同操作的活动,并且可能具有相同名称但含义不同或格式不同的附加内容
Phew,这一切听起来都不太可能。如果你没有处理公共的Intent动作那么它似乎似乎没有必要完全限定你的额外内容,但我想如果你是偏执型的话,一直这样做都没有坏处。

答案 1 :(得分:2)

Intent可以传递给其他应用程序和它自己的系统,所以礼貌就是使用包命名空间。

答案 2 :(得分:0)

来自official tutorials

最好在应用的 包名称作为前缀。这样可以确保密钥在 您的应用程序与其他应用程序交互的情况。

除非您的应用程序与其他应用程序进行交互,或者您预见将来可能需要这样做,否则可以安全地在附加程序中省略包前缀。