Quel est le but d'utiliser Android.intent.category.DEFAULT
dans le champ Catégorie des filtres d'intention?
Les catégories sont utilisées pour les intentions implicites. Ainsi, si votre activité peut démarrer par une intention implicite lorsqu'aucune catégorie spécifique ne lui est affectée, son filtre d'intention doit inclure cette catégorie (même si vous avez d'autres catégories dans le filtre d'intention). Si vous êtes sûr que votre activité doit être appelée avec une autre catégorie, n'utilisez pas la valeur par défaut.
Le fait de définir Catégorie sur Valeur par défaut ne signifie pas que cette activité sera utilisée par défaut lors du lancement de votre application. L'activité indique simplement au système que " Oh, je pourrais commencer, même si la catégorie de l'intention de départ est définie sur Rien du tout! "
Cette catégorie est principalement utilisée pour des intentions implicites. Si votre activité souhaite être lancée avec une intention implicite, vous devez inclure cette catégorie dans son filtre.
Je pense que le terme "défaut" doit être compris comme "défaut candidat". Si l'action sur une donnée résout plusieurs activités, alors Android présentera tous les candidats à l'utilisateur et celui-ci pourra sélectionner sa valeur par défaut.
Référence:
http://developer.Android.com/guide/components/intents-filters.html
Extrait de cette page:
Android traite toutes les intentions implicites transmises à tostartActivity () comme si elles contenaient au moins une catégorie: "Android.intent.category.DEFAULT" (la constante CATEGORY_DEFAULT). Par conséquent, les activités souhaitant recevoir des intentions implicites doivent inclure "Android.intent.category.DEFAULT" dans leurs filtres d'intention. (Les filtres avec les paramètres "Android.intent.action.MAIN" et "Android.intent.category.LAUNCHER" constituent une exception. Ils marquent les activités qui commencent de nouvelles tâches et sont représentées sur l'écran de lancement. Ils peuvent inclure "Android.intent .category.DEFAULT "dans la liste des catégories, mais ce n’est pas nécessaire.)
Les activités devront prendre en charge CATEGORY_DEFAULT pour pouvoir être trouvées par Context.startActivity ().
Afin de recevoir des intentions implicites, vous devez inclure la catégorie CATEGORY_DEFAULT dans le filtre d'intention. Les méthodes startActivity () et startActivityForResult () traitent toutes les intentions comme si elles déclaraient la catégorie CATEGORY_DEFAULT. Si nous ne le déclarons pas dans notre filtre d'intention, aucune intention implicite ne résoudra notre activité.
C’est en fait pour s’assurer que vos autres activités peuvent être appelées lorsque l’application est en cours d’exécution. LAUNCHER fera de l'activité qui en est la première activité qui commence. Pour utiliser les intentions pour accéder aux autres activités, elles doivent être répertoriées comme des activités "réelles" en mettant DEFAULT. C'est ce que je sais, alors ne me citez pas si c'est faux.
https://developer.Android.com/guide/components/intents-filters
Pour recevoir des intentions implicites, vous devez inclure la catégorie CATEGORY_DEFAULT dans le filtre d'intention. Les méthodes startActivity () et startActivityForResult () traitent toutes les intentions comme si elles déclaraient la catégorie CATEGORY_DEFAULT. Si vous ne déclarez pas cette catégorie dans votre filtre d'intention, aucune intention implicite ne résoudra votre activité.
Il est utilisé pour déclarer une opération comme action par défaut (comme son nom l’indique). Considérons que nous avons une application de bloc-notes (en référence à l'exemple de bloc-notes Android). La première page de l'application consiste en une liste de tous les fichiers du bloc-notes. Lorsqu'un fichier du bloc-notes est sélectionné, l'une des opérations telles que modifier une note, supprimer une note, etc. peut être effectuée. Mais je veux que l’édition soit mon action par défaut, c’est-à-dire que, lorsque j’appuie sur le bouton central de mon clavier, la fenêtre d’édition devrait être ouverte.