首页 文章

了解哪个活动首先在Android应用中启动

提问于
浏览
20

我不清楚Android如何在应用启动时确定哪个Activity首先启动 . 关于Activities的AndroidManifest.xml文件,Android文档说明了以下内容:

“只有一项活动应该有”主要“行动和” Launcher “类别......”

所以在AndroidManifest.xml文件中,你应该只有一个:

动作android:name =“android.intent.action.MAIN”

category android:name =“android.intent.category.DEFAULT”

但是,在查看Android SDK中的示例代码时,名为“APIDemos”的应用程序包含一个包含大量数据的清单文件

“android.intent.action.MAIN”和“android.intent.category.DEFAULT”

我完全糊涂了 . 这似乎与谷歌所说的相反,只是假设是一个 . Android是否只是 grab 清单中首先出现的那个并忽略所有其他的?如果没有,为什么有多个MAIN和DEFAULT?

3 回答

  • 6

    活动通常需要支持CATEGORY_DEFAULT,以便Context.startActivity()可以找到它们 . 因此,CATEGORY_DEFAULT可以出现多次 .

    Android不会 grab 清单中首先显示的那个,但它会从具有CATEGORY_LAUNCHER的活动开始 .

    CATEGORY_LAUNCHER:活动可以是任务的初始活动,并列在顶级应用程序启动器中 .

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

  • 5

    我完全糊涂了 . 这似乎与谷歌所说的相反,只是假设是一个 .

    这不是相反的 . 这些活动的类别为CATEGORY_DEFAULT,但不是CATEGORY_LAUNCHER .

  • 9

    action.MAIN和category.LAUNCHER用于指定当用户按下您的应用程序图标或从正在运行的应用程序列表中选择它时启动的活动 .

    您可以使用其他操作组合和category.DEFAULT来响应不同的事件,但action.MAIN和category.LAUNCHER的组合应该只定义一次 .

相关问题