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

Joh*_*ann 21 android android-activity

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

"只有一项活动应该有"主要"行动和"发射器"类别......"

所以在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是否只是抓住清单中首先出现的那个并忽略所有其他的?如果没有,为什么有多个MAIN和DEFAULT?

Bal*_*ake 9

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

Android不会抓住清单中首先出现的那个,但它会从具有CATEGORY_LAUNCHER的活动开始.

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

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


Ser*_*tov 6

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

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

  • 你是对的。APIDemos 中只有其中之一。下周我会预约检查我的眼睛。谢谢。 (2认同)

met*_*din 6

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

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