Android intent';解析活动和包管理器

Android intent';解析活动和包管理器,android,android-intent,android-package-managers,Android,Android Intent,Android Package Managers,要检查是否可以处理意图,请调用: if (intent.resolveActivity(getPackageManager()) != null) { // start activity } 问题-如果始终传递相同的getPackageManager(),为什么需要PackageManager的参数?是否存在可以传递不同包管理器的情况?包管理器就像一个注册表。它包含应用程序的所有详细信息,如下所示 这就是为什么您提供包管理器参数来在火灾前解决意图。或者,您也可以在触发intent之前使用c

要检查是否可以处理意图,请调用:

if (intent.resolveActivity(getPackageManager()) != null) {
  // start activity
}

问题-如果始终传递相同的getPackageManager(),为什么需要PackageManager的参数?是否存在可以传递不同包管理器的情况?

包管理器就像一个注册表。它包含应用程序的所有详细信息,如下所示


这就是为什么您提供包管理器参数来在火灾前解决意图。或者,您也可以在触发intent之前使用chooser。在其他情况下,您可能需要检索不同的应用程序信息,然后可以使用包管理器。我们没有明显的理由必须通过这一论点。也许只有编写该函数的Google开发人员才能回答。

这并不能回答为什么需要参数的问题。没有明显的原因说明为什么会这样。也许只有编写该函数的谷歌开发者才能回答这个问题。