【发布时间】:2017-05-21 22:04:40
【问题描述】:
- 如果意图过滤器是为了解决隐式意图,那么为什么 MainActivity(这是第一个运行的活动 应用程序已启动)是否有意图过滤器?
- 谁向它发送了隐含的意图?
- 如果发送的隐式意图没有正确的数据怎么办?
【问题讨论】:
标签: android android-studio android-intent intentfilter android-implicit-intent
【问题讨论】:
标签: android android-studio android-intent intentfilter android-implicit-intent
https://developer.android.com/reference/android/content/Intent.html#ACTION_MAIN
Launcher 向其发送隐含意图。这就是启动器如何知道单击时要打开哪个活动。
如果您发送不正确的数据,它将不会打开您的活动。例如: 如果您尝试仅在 startActivity 中使用隐式意图启动主要活动,那么它将不会启动,因为有 CATEGORY_DEFAULT 与之关联。您需要在您的活动中再添加一个 intent_filter 来解析意图。
【讨论】:
那么,系统如何知道哪个活动是主要活动?这不是名字——系统不关心名字。它是带有表示其主要活动的意图过滤器的活动。
它还可以有其他意图过滤器以您可能想要的任何其他方式启动它。例如,您可能有一个意图过滤器来通过深层链接启动它。
至于正确的数据——如果从应用列表或主屏幕启动,它不会有任何数据。它由应用程序的程序员来确保它可以在这种情况下做一些有意义的事情。
【讨论】: