有没有一种简单的方法可以确定 anIntent是显式的还是隐式的?
我正在尝试实现一个具有Android 文档中推荐的行为的导航抽屉,即抽屉应在应用程序启动时自动打开,直到用户手动打开它。
但是,使用导航抽屉的活动可以从我的应用程序内以及应用程序外部的多个位置启动。我只想在从应用程序外部启动活动时打开抽屉,但我找不到一种简单的方法来找出意图的来源。
有几种方法Intent最初看起来很有希望:
getComponent()似乎会在发送端为您提供信息(空/非空)(您已经知道!),但根据文档,在接收端永远不会为空。hasCategory()可用于查找已知类别的外部意图,例如android.intent.category.LAUNCHER。这可能是我最终使用的,但我宁愿有一个通用的解决方案,而不是尝试在这里解释每种可能性。getPackage()看起来它可能会做正确的事情,但除非我没有正确使用它,否则它在我的测试中似乎总是返回 null。或者,我总是可以putExtra()为我的所有内部意图添加一个标志,但这感觉太像黑客,所以如果有其他选择,我宁愿避免它。