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

时间:2012-12-11 11:27:22

标签: android android-intent

如果活动经理使用intent-filteraction=main通过category=launcher启动MainActivity,那么会使用哪种类型的意图?

我很困惑。这是隐含意图吗?

3 个答案:

答案 0 :(得分:2)

intent是要执行的操作的抽象描述。其最重要的用途是开展活动。

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

action="android.intent.action.MAIN"

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

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

LAUNCHER类别表示它应作为顶级应用程序出现在Launcher中。

答案 1 :(得分:1)

意图只是关于意图的一条信息。意图启动任何内容。它只是通知操作系统需要做某事(即启动应用程序)。系统会查找能够解决此问题的应用程序,启动它们并将它们设置为启动意图(因为您可以传递其中的一部分数据)。

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

答案 2 :(得分:1)

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

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

您的应用的主要活动必须在清单中使用 intent-filter 进行声明,其中包含 MAIN 操作和LAUNCHER类别(您可能知道)。< / p>

如果组件没有任何意图过滤器,则它只能接收显式意图。具有过滤器的组件可以接收显式和隐式意图。

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

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