What is the meaning of android.intent.action.MAIN?
ACTION_MAIN
is considered an entry point for the application. Usually, it combines with CATEGORY_LAUNCHER
in an <intent-filter>
to indicate an activity that should appear in the home screen's launcher, or in anything else that considers itself to be a launcher. Such "launchers" can query PackageManager
, using queryIntentActivities()
, to find such activities and display them to the user.
However, ACTION_MAIN
can be used in combination with other categories for other specialized purposes. For example, CATEGORY_CAR_DOCK
with ACTION_MAIN
indicates an activity that should be considered a candidate to be shown when the user drops their phone into a manufacturer-supplied car dock.
When an Intent
is used with startActivity()
, if the Intent
is not already placed into a category, it is placed into CATEGORY_DEFAULT
. Hence, an <activity>
<intent-filter>
needs to specify some <category>
, using <category android:name="android.intent.category.DEFAULT" />
if nothing else.
android.intent.action.MAIN
means that this activity is the entry point of the application, i.e. when you launch the application, this activity is created.
From the docs
ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
Also,from here
Activity Action Start as a main entry point, does not expect to receive data.
android.intent.category.DEFAULT is mainly used for implicit intents. If your activity wishes to be started by an implicit intent it should include this catetory in its filter. If your Activity might be started by an implicit Intent when no specific category is assigned to it, its Intent filter should include this category.
android.intent.category.LAUNCHER
category -- Gives additional information about the action to execute.
CATEGORY_LAUNCHER
means it should appear in the Launcher as a top-level application
See the docs..
- http://developer.android.com/reference/android/content/Intent.html
- http://developer.android.com/guide/topics/manifest/action-element.html