android.intent.action.MAIN是什么意思?

我已经看到了许多不同的困惑。

<intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 

是什么意思

 <action android:name="android.intent.action.MAIN" /> 

  <category android:name="android.intent.category.LAUNCHER" /> 

  <category android:name="android.intent.category.DEFAULT" /> 

android.intent.action.MAIN意味着这个活动是应用程序的入口点,也就是说当你启动应用程序的时候,这个活动就被创build了。

从文档

 ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen. 

另外,从这里

活动行动作为主要入口点开始,不期望接收数据。

android.intent.category.DEFAULT主要用于隐式意图。 如果你的活动希望由一个隐含的意图开始,那么它应该包含这个filter。 如果您的活动可能由一个隐式的意图启动,当没有特定的类别分配给它时,它的意图filter应该包括这个类别。

android.intent.category.LAUNCHER

类别 – 提供有关要执行的操作的附加信息。

CATEGORY_LAUNCHER表示它应该作为顶级应用程序出现在启动器中

查看文档..

  1. http://developer.android.com/reference/android/content/Intent.html
  2. http://developer.android.com/guide/topics/manifest/action-element.html

ACTION_MAIN被认为是应用程序的入口点。 通常情况下,它与CATEGORY_LAUNCHER结合在一个<intent-filter> ,表示一个活动,该活动应该出现在主屏幕的启动器中,或者其他任何认为自己是启动器的活动中。 这样的“启动器”可以使用queryIntentActivities()查询PackageManager来查找这些活动并将其显示给用户。

但是, ACTION_MAIN可以与其他类别一起用于其他专用目的。 例如,具有ACTION_MAIN CATEGORY_CAR_DOCK指示当用户将他们的手机放入制造商提供的汽车坞站时应被视为候选人的活动。

IntentstartActivity() ,如果Intent没有被放到一个类别中,它被放置在CATEGORY_DEFAULT 。 因此,一个<activity> <intent-filter>需要使用<category android:name="android.intent.category.DEFAULT" />来指定一些 <category>