android.intent.action.MAIN
означает, что это действие является точкой входа в приложение, т.е. когда вы запускаете приложение, это действие создается.
Из документов
ACTION_MAIN with category CATEGORY_HOME
Также отсюда
Действие Действие Начало в качестве основной точки входа, не ожидает получения данных.
android.intent.category.DEFAULT в основном используется для неявных намерений. Если ваша деятельность должна быть начата с неявного намерения, она должна включить эту категорию в свой фильтр. Если ваше действие может быть запущено неявным намерением, когда ему не назначена конкретная категория, его фильтр намерений должен включать эту категорию.
android.intent.category.LAUNCHER
категория - дает дополнительную информацию о действии, которое нужно выполнить.
CATEGORY_LAUNCHER
означает, что он должен отображаться в Launcher как приложение верхнего уровня
См. Документы ..
- http://developer.android.com/reference/android/content/Intent.html
- http://developer.android.com/guide/topics/manifest/action-element.html
MAIN
одиночку не «начать деятельность домой».MAIN
имеет много применений.ACTION_MAIN
считается точкой входа для приложения. Обычно он сочетается сCATEGORY_LAUNCHER
in,<intent-filter>
чтобы указать действие, которое должно появиться в средстве запуска на главном экране или во всем остальном, что считает себя средством запуска. Такие «пусковые установки» могут запрашиватьPackageManager
, использоватьqueryIntentActivities()
, чтобы находить такие действия и отображать их пользователю.Однако
ACTION_MAIN
может использоваться в сочетании с другими категориями для других специализированных целей. Например,CATEGORY_CAR_DOCK
сACTION_MAIN
указывает действие, которое следует рассматривать в качестве кандидата на показ, когда пользователь роняет свой телефон в автомобильную док-станцию, поставляемую производителем.Когда
Intent
используется сstartActivity()
, если онIntent
еще не помещен в категорию, он помещается вCATEGORY_DEFAULT
. Следовательно,<activity>
<intent-filter>
необходимо указать некоторые из них<category>
, используя<category android:name="android.intent.category.DEFAULT" />
если не что иное.источник
ACTION_MAIN
, не связанного с запуском в стиле домашнего экрана.<intent-filter>
оба<action android:name="android.intent.action.MAIN" />
и<category android:name="android.intent.category.LAUNCHER" />
.finish()
сразу же, но пользователи будут думать, что ваше приложение не работает.<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
Обычно просто добавляйте,
android.intent.category.DEFAULT
даже если у вас есть другие категории. Это гарантирует, что если запрашиваемое намерение не предоставляет никаких категорий при запуске намеренияstartActivity(intent)
, то ваша принимающая активность также может получать эти намерения.Источник: Руководство по разработке Android для занятых программистов.
https://commonsware.com/Android/
источник