À quoi sert-il android.intent.category.DEFAULT
dans le champ Catégorie des filtres d'intention?
À quoi sert-il android.intent.category.DEFAULT
dans le champ Catégorie des filtres d'intention?
Réponses:
Les catégories sont utilisées pour les intentions implicites. Ainsi, si votre activité peut être démarrée par une intention implicite lorsqu'aucune autre catégorie spécifique n'est affectée à l'activité, le filtre Intention de l'activité doit inclure cette catégorie. (même si vous avez d'autres catégories dans le filtre 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.
La définition de la catégorie par défaut ne signifie pas que cette activité sera utilisée par défaut lors du lancement de votre application. L'activité dit simplement au système que " Oh, je pourrais être démarré, même si la catégorie Intention de départ est définie sur Rien du tout! "
Cette catégorie est principalement utilisée pour les intentions implicites. Si votre activité souhaite être lancée par une intention implicite, elle doit inclure cette catégorie dans son filtre.
Je pense que le terme «par défaut» doit être compris comme « candidat par défaut ». Si l'action sur un élément de données se résout en plusieurs activités, Android présentera tous les candidats à l'utilisateur et l'utilisateur pourra sélectionner sa valeur par défaut préférée.
Référence:
http://developer.android.com/guide/components/intents-filters.html
Extrait de cette page:
Android traite toutes les intentions implicites passées àstartActivity () comme si elles contenaient au moins une catégorie: "android.intent.category.DEFAULT" (la constante CATEGORY_DEFAULT). Par conséquent, les activités qui acceptent de 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" sont l'exception. Ils marquent les activités qui commencent de nouvelles tâches et qui sont représentées sur l'écran du lanceur. Ils peuvent inclure "android.intent .category.DEFAULT "dans la liste des catégories, mais ce n'est pas nécessaire.)
Il s'agit en fait de vous 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 a la première activité qui démarre. Pour utiliser les intentions pour accéder aux autres activités, elles doivent être répertoriées comme activités «réelles» en mettant DEFAULT. C'est d'après ce que je sais, alors ne me citez pas si c'est faux.
Les activités devront prendre en charge CATEGORY_DEFAULT afin qu'elles puissent être trouvées par Context.startActivity ().
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 nous ne le déclarons pas dans notre filtre d'intention, aucune intention implicite ne se résoudra à notre 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 (faisant référence à l'exemple de bloc-notes Android). La première page de l'application se compose d'une liste de tous les fichiers du bloc-notes. Lorsqu'un fichier de 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 faire de l'édition comme mon action par défaut, ce qui signifie que lorsque j'appuie sur le bouton central de mon clavier, la fenêtre d'édition doit être ouverte.
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é.
Catégorie:
android.intent.category.DEFAULT
Correspond à toute intention implicite. Cette catégorie doit être incluse pour que votre activité reçoive une intention implicite.