Подтвердить что ты не робот

В чем смысл 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" />
4b9b3361

Ответ 1

android.intent.action.MAIN означает, что это действие является точкой входа приложения, то есть при запуске приложения это действие создается.

Из docs

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

Кроме того, из здесь

Действие Действие Начните в качестве основной точки входа, не ожидайте получать данные.

android.intent.category.DEFAULT используется в основном для неявных намерений. Если ваша деятельность хочет начать с неявного намерения, она должна включить эту статью в свой фильтр. Если ваше действие может быть запущено с помощью неявного намерения, когда ему не назначена какая-либо конкретная категория, его фильтр Intent должен включать эту категорию.

android.intent.category.LAUNCHER

category - предоставляет дополнительную информацию о выполняемом действии.

CATEGORY_LAUNCHER означает, что он должен появиться в Launcher как приложение верхнего уровня

Смотрите документы..

Ответ 2

ACTION_MAIN считается точкой входа для приложения. Обычно он объединяется с CATEGORY_LAUNCHER в <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" />, если ничего другого.