Intent是否负责启动应用程序的MainActivity



如果活动管理器通过intent-filteraction=maincategory=launcher启动MainActivity,则使用哪种类型的意图?

我有点困惑。这是隐含的意图吗?

意图是对要执行的操作的抽象描述。它最重要的用途是在开展活动方面。

当用户点击应用程序图标时,android系统会在清单文件中查找的意图

action="android.intent.action.MAIN"

category="android.intent.category.LAUNCHER".

MAIN操作是应用程序的主要入口点。

LAUNCHER类别意味着它应该作为顶级应用程序出现在LAUNCHER中。

意向只是关于意向的一条信息。意图启动任何操作。它只是通知操作系统有必要做点什么(即启动应用程序)。系统寻找能够解决此意图的应用程序,启动它们并将其发送到启动意图(因为您可以在其中传递部分数据)。

当用户点击启动器中的应用程序图标时,启动器应用程序会生成并向操作系统发送意图(带有要启动的所需应用程序的明确名称)。Android创建了单独的DVM,即主活动类,通过调用onCreate()启动活动的生命周期,并将活动带到前台。

当用户从主屏幕选择您的应用程序图标时,系统会为您已声明为"启动器"(或"主")活动的应用程序中的"活动"调用onCreate()方法。这是作为应用程序用户界面的主要入口点的活动。

您可以在Android清单文件AndroidManifest.xml中定义要用作主活动的活动,该文件位于项目目录的根目录中。

应用程序的主要活动必须在清单中使用意图过滤器声明,该过滤器包括main操作和LAUNCHER类别(您可能知道)。

如果组件没有任何意图过滤器,那么它只能接收明确的意图。带有过滤器的组件可以接收显式和隐式意图。

因此,愿意接收隐含意图的活动必须在其意图过滤器中包含"android.intent.category.DEFAULT">。带有"android.intent.action.MAIN">"android.internt.category.LAUNCHER">设置的过滤器除外。它们标记开始新任务并在启动器屏幕上显示的活动。他们可以在类别列表中包括"android.intent.category.DEFAULT",但不需要。

有关更多详细信息,请参阅此链接:http://developer.android.com/guide/components/intents-filters.html

最新更新