2

If Activity manager launches the MainActivity through intent-filter with action=main, and category=launcher, then which type of intent is used?

I'm confused little bit. Is it implicit intent?

4

3 回答 3

2

意图是对要执行的操作的抽象描述。它最重要的用途是启动活动。

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

action="android.intent.action.MAIN"

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

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

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

于 2012-12-11T13:00:14.933 回答
1

Intent 只是关于意图的一条信息。意图启动任何东西。它只是通知操作系统需要做某事(即启动应用程序)。系统寻找能够解决此意图的应用程序,启动它们并将其传递给它们的起始意图(因为您可以在其中传递部分数据)。

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

于 2012-12-11T11:36:00.400 回答
1

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

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

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

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

因此,愿意接收隐式意图的活动必须在其意图过滤器中包含“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

于 2012-12-12T07:31:15.280 回答