32

根据 Android 文档 Intent 额外名称必须有一个包前缀。很长一段时间以来,我一直在使用不带前缀的 Intent 额外名称,似乎没有发生冲突的机会,因为真正重要的是 Intent 操作是唯一的。那么文档是错误的还是我遗漏了什么?

putExtra的文档说:

向意图添加扩展数据。该名称必须包含包前缀,例如应用程序 com.android.contacts 将使用“com.android.contacts.ShowAll”之类的名称。

4

3 回答 3

21

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

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

  • 对于您自己的使用,您希望能够将自定义附加内容传递给上述 Activity,而不会干扰正在执行完全相同的事情并且可能具有相同名称但含义或格式不同的附加内容的另一个 Activity

呸,这一切听起来都不太可能。如果您不处理公共 Intent 操作,那么似乎仍然不需要完全限定您的附加功能,但我想如果您是偏执型,那么一直这样做并没有什么坏处。

于 2012-09-16T18:27:46.630 回答
3

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

于 2012-09-04T21:10:57.470 回答
0

来自官方教程

使用您的应用程序包名称作为前缀来定义意图附加项的键是一种很好的做法。这样可以确保密钥是唯一的,以防您的应用程序与其他应用程序交互。

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

于 2020-03-17T06:38:44.537 回答