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" />
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 ..
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.
<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)