- 如果意图过滤器是为了解决隐式意图,那么为什么 MainActivity(这是启动应用程序时运行的第一个活动)有一个意图过滤器?
- 谁向它发送了隐含的意图?
- 如果发送的隐含意图没有正确的数据怎么办?
问问题
663 次
2 回答
2
那么,系统如何知道哪个活动是主要活动?这不是名字——系统不关心名字。它是带有表示其主要活动的意图过滤器的活动。
它还可以具有其他意图过滤器,以您可能想要的任何其他方式启动它。例如,您可能有一个意图过滤器来通过深层链接启动它。
至于正确的数据 - 如果从应用程序列表或主屏幕启动,它不会有任何数据。它由应用程序的程序员来确保它可以在这种情况下做一些有意义的事情。
于 2017-01-07T03:58:40.693 回答
1
- 它有 CATEGORY_LAUNCHER 和 ACTION_MAIN 。android.intent.action.MAIN 表示这个activity是应用程序的入口点,即当你启动应用程序时,这个activity就被创建了。CATEGORY_LAUNCHER 告诉您的活动应该显示在顶级启动器中。
https://developer.android.com/reference/android/content/Intent.html#ACTION_MAIN
Launcher 向其发送隐含意图。这就是启动器如何知道单击时要打开哪个活动。
如果您发送不正确的数据,它将不会打开您的活动。例如:如果您尝试仅在 startActivity 中使用隐式意图启动主要活动,那么它将不会启动,因为有 CATEGORY_DEFAULT 与之关联。您需要在您的活动中再添加一个 intent_filter 来解析意图。
于 2017-01-07T04:12:15.483 回答