web-dev-qa-db-fra.com

Quelle est la signification de Android.intent.action.MAIN?

J'ai vu tellement d'explications divergentes ..

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

Quel est le sens de

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

et

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

et

 <category Android:name="Android.intent.category.DEFAULT" />
61
Gero

Android.intent.action.MAIN signifie que cette activité est le point d’entrée de l’application, c’est-à-dire que lorsque vous lancez l’application, cette activité est créée.

De la docs

ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

Aussi, de ici

Activité Action Démarrer comme point d’entrée principal, ne comptez pas sur recevoir des données.

Android.intent.category.DEFAULT est principalement utilisé pour des intentions implicites. Si votre activité souhaite démarrer par une intention implicite, elle doit inclure cette catégorie dans son filtre . Si votre activité peut être démarrée par une intention implicite lorsqu'aucune catégorie spécifique ne lui est affectée, son filtre Intention doit inclure cette catégorie.

Android.intent.category.LAUNCHER

catégorie - Donne des informations supplémentaires sur l'action à exécuter.

CATEGORY_LAUNCHER signifie qu'il devrait apparaître dans le programme de lancement en tant qu'application de niveau supérieur.

Voir la documentation ..

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

ACTION_MAIN est considéré comme un point d'entrée pour l'application. Habituellement, il se combine avec CATEGORY_LAUNCHER dans un <intent-filter> pour indiquer une activité devant apparaître dans le lanceur de l'écran d'accueil ou dans tout ce qui se considère comme un lanceur. Ces "lanceurs" peuvent interroger PackageManager, à l'aide de queryIntentActivities(), pour rechercher de telles activités et les afficher à l'utilisateur.

Cependant, ACTION_MAIN peut être utilisé en combinaison avec d’autres catégories à des fins spécialisées. Par exemple, CATEGORY_CAR_DOCK avec ACTION_MAIN indique une activité qui devrait être considérée comme un candidat à afficher lorsque l'utilisateur dépose son téléphone dans un quai pour voiture fourni par le fabricant.

Quand une Intent est utilisée avec startActivity(), si la Intent n'est pas déjà placée dans une catégorie, elle est placée dans CATEGORY_DEFAULT. Par conséquent, un <activity><intent-filter> doit spécifier some <category>, en utilisant <category Android:name="Android.intent.category.DEFAULT" /> si rien d'autre.

77
CommonsWare
<action Android:name="Android.intent.action.MAIN"/>

Est-ce que l'activité principale de cette application

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

Il est dans la catégorie LAUNCHER, ce qui signifie qu’il porte une icône dans n'importe quoi qui se considère comme un «lanceur», tel que l'écran d'accueil

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

L'appel à startActivity () ajoutera toujours la catégorie DEFAULT si aucune autre catégorie n'est spécifiée.

Généralement, ajoutez simplement Android.intent.category.DEFAULT même si vous avez d'autres catégories. Cela garantit que si Requesting Intent ne fournit aucune catégorie lors du démarrage de l'intention avec startActivity(intent), votre activité de réception peut également recevoir ces Intentions ..

Source: The Busy Coders Guide to Android Development (Développement Android)

https://commonsware.com/Android/

0
Shubham Soni