web-dev-qa-db-fra.com

Qu'est-ce qu'une intention dans Android?

  • Qu'est-ce qu'un Intent dans Android?
  • Quelqu'un peut-il élaborer avec un exemple?
  • Quels sont les types d'intentions et pourquoi nous les utilisons?
  • Pourquoi les intentions sont-elles si importantes dans Android?
334
Nikunj Patel

Un Intent est une "intention" d'effectuer une action; en d'autres termes,

un objet de messagerie que vous pouvez utiliser pour demander une action à un autre composant d'application

Une intention est fondamentalement un message pour dire que vous avez fait ou voulez que quelque chose se produise. En fonction de l'intention, les applications ou le système d'exploitation peuvent être à l'écoute et réagiront en conséquence. Considérez-le comme un e-mail explosif adressé à un groupe d’amis, dans lequel vous dites à votre ami John de faire quelque chose, ou à des amis qui peuvent faire X ( "filtres d’intention" ), à faire X. D'autres personnes ignoreront le courrier électronique, mais John (ou des amis qui savent faire X) réagira.

Pour écouter une intention de diffusion (telle que le téléphone sonne ou qu'un SMS soit reçu), vous implémentez un récepteur de diffusion , auquel l'intention est transmise. Pour déclarer que vous pouvez gérer l'intention d'une autre application telle que "prendre une photo", vous déclarez un filtre d'intention dans le fichier manifeste de votre application .

Si vous voulez déclencher une intention de faire quelque chose, comme faire apparaître le numéroteur, vous déclenchez une intention en disant que vous voulez.

475
Chirag

Qu'est-ce qu'une intention?

Un Intention est fondamentalement un message qui est passé entre composants (tel que Activités , Services, récepteurs de radiodiffusion, et Fournisseurs de contenu ). Donc, cela équivaut presque aux paramètres passés aux appels d’API. Les différences fondamentales entre les appels d'API et l'appel de composants via des intentions sont les suivantes:

  • Les appels d'API sont synchrones tandis que les appels basés sur l'intention sont asynchrones.
  • Les appels d'API sont une liaison au moment de la compilation, tandis que les appels basés sur l'intention sont une liaison au moment de l'exécution.

Bien entendu, les intentions peuvent être conçues pour fonctionner exactement comme les appels d'API en utilisant ce qu'on appelle des intentions explicites , , qui seront expliquées plus tard. Mais plus souvent qu'autrement, implicite intentions sont la voie à suivre et c'est ce qui est expliqué ici.

Un composant qui souhaite en invoquer un autre doit uniquement exprimer son intention de faire un travail. Et tout autre composant existant et prétendant pouvoir effectuer un tel travail par le biais de intent-filters , est appelé par le Android plate-forme pour accomplir le travail. Cela signifie que ni les composants ne sont conscients de l'existence de l'autre, mais peuvent toujours fonctionner ensemble pour donner le résultat souhaité à l'utilisateur final.

Cette connexion invisible entre les composants est réalisée via la combinaison d'intentions, de filtres d'intention et de la plate-forme Android.

Cela conduit à d'énormes possibilités comme:

  • Mélangez et faites correspondre ou plutôt branchez et jouez des composants au moment de l'exécution.
  • Remplacement des applications Android incorporées par des applications développées sur mesure.
  • Réutilisation au niveau des composants dans et entre les applications.
  • Orientation de service au niveau le plus granulaire, si je puis dire.

Voici des détails techniques supplémentaires sur Intentions de la documentation Android .

Une intention est une description abstraite d'une opération à effectuer. Il peut être utilisé avec startActivity pour lancer une activité , broadcastIntent à envoyer à tout composant intéressé BroadcastReceiver et startService (Intent) ou bindService (Intent, ServiceConnection, int) pour communiquer avec un service en arrière-plan.

Une intention permet de créer une liaison d'exécution tardive entre le code dans différentes applications. Son utilisation la plus importante est dans le lancement d'activités, où il peut être considéré comme le lien entre les activités. Il s’agit d’une structure de données passive contenant une description abstraite d’une action à exécuter. Les principales informations contenues dans une intention sont les suivantes:

  • action Action générale à effectuer, telle que ACTION_VIEW, ACTION_EDIT, ACTION_MAIN, etc.
  • data Données à utiliser, telles qu'un enregistrement de personne dans la base de données de contacts, exprimées sous la forme d'un Uri.

Apprendre encore plus

158
mr.boyfox

Les intentions sont un moyen de dire à Android ce que vous voulez faire. En d'autres termes, vous décrivez votre intention. Les intentions peuvent être utilisées pour signaler au système Android qu'un événement donné s'est produit. Les autres composants de Android peuvent s'inscrire à cet événement via un filtre d'intention.

Voici 2 types d'intentions

1. intentions explicites

utilisé pour appeler un composant spécifique. Lorsque vous savez quel composant vous souhaitez lancer et que vous ne souhaitez pas donner à l'utilisateur le contrôle gratuit du composant à utiliser. Par exemple, vous avez une application qui a 2 activités. Activité A et activité B. Vous souhaitez lancer l'activité B à partir de l'activité A. Dans ce cas, vous définissez une activité de ciblage d'intention explicite B, puis vous l'utilisez pour l'appeler directement.

2. Intentions implicites

utilisé lorsque vous avez une idée de ce que vous voulez faire, mais que vous ne savez pas quel composant doit être lancé. Ou si vous voulez donner à l'utilisateur une option pour choisir entre une liste de composants à utiliser. Si ces intentions sont envoyées au système Android, il recherche tous les composants enregistrés pour l'action spécifique et le type de données. Si un seul composant est trouvé, Android démarre le composant directement. Par exemple, vous avez une application qui utilise l'appareil photo pour prendre des photos. Une des fonctionnalités de votre application est que vous donnez à l'utilisateur la possibilité d'envoyer les photos qu'il a prises. Vous ne savez pas quel type d'application l'utilisateur peut envoyer des photos et vous souhaitez également lui donner la possibilité de choisir quelle application externe utiliser s'il en possède plusieurs. Dans ce cas, vous n'utiliseriez pas d'intention explicite. A la place, vous devez utiliser une intention implicite dont l'action est définie sur ACTION_SEND et ses données supplémentaires définies sur l'URI de la photo.

Une intention explicite est toujours livrée à sa cible, peu importe ce qu'elle contient. le filtre n'est pas consulté. Mais une intention implicite n'est transmise à un composant que s'il peut passer par l'un des filtres du composant.

Filtres d'intention

Si une intention est envoyée au système Android, il déterminera les applications appropriées pour cette intention. Si plusieurs composants ont été enregistrés pour ce type d’intentions, Android offre à l’utilisateur le choix d’en ouvrir un.

Cette détermination est basée sur IntentFilters. Un IntentFilters spécifie les types d'intention auxquels une activité, un service ou un récepteur de diffusion peuvent répondre. Un filtre d'intention déclare les capacités d'un composant. Il spécifie ce qu'une activité ou un service peut faire et quels types d'émissions peuvent être gérés par un récepteur. Il permet au composant correspondant de recevoir des intentions du type déclaré. Les IntentFilters sont généralement définis via le fichier AndroidManifest.xml. Pour BroadcastReceiver, il est également possible de les définir en codage. Un IntentFilters est défini par ses filtres de catégorie, d'action et de données. Il peut également contenir des métadonnées supplémentaires.

Si un composant ne définit pas de filtre d'intention, il ne peut être appelé que par des intentions explicites.

Voici 2 façons de définir un filtre

Fichier 1.Manifest

Si vous définissez le filtre d'intention dans le manifeste, votre application ne doit pas nécessairement être en cours d'exécution pour réagir aux intentions définies dans son filtre. Android enregistre le filtre lorsque votre application est installée.

Récepteur 2.BroadCast

Si vous souhaitez que votre récepteur de radiodiffusion ne reçoive l'intention que lorsque votre application est en cours d'exécution. Ensuite, vous devez définir votre filtre d'intention pendant l'exécution (par programmation). Gardez à l'esprit que cela ne fonctionne que pour les récepteurs de diffusion.

48
Varun Bhatia

Après l'écriture d'une seule activité, il est nécessaire de passer à une autre activité pour effectuer une autre tâche avec ou sans informations de la première activité.

La plate-forme Android permet la transition au moyen de l'interface d'intention.

Les mots sont pris ici: en utilisant Intent Demo et je vous suggère de suivre cet exemple car ils ont également fourni un fichier de code. afin que vous puissiez l'utiliser et comprendre facilement la même chose.

12
Paresh Mayani

Intention Android

Intention Android vous permet de naviguer d'une activité Android à une autre. À l'aide d'exemples, ce didacticiel présente également divers types d'intentions Android.

Android Intent peut être défini comme un simple objet de message utilisé pour communiquer d'une activité à une autre.

Les intentions définissent l'intention d'une application. Ils sont également utilisés pour transférer des données entre activités.

Une intention Android peut être utilisée pour effectuer les 3 tâches suivantes:

  1. Ouvrez une autre activité ou service à partir de l'activité en cours
  2. Transférer des données entre activités et services
  3. Déléguez la responsabilité à une autre application. Par exemple, vous pouvez utiliser Intents pour ouvrir l’application de navigation afin d’afficher une URL.

L'intention peut être globalement classée en 2 catégories. Il n'y a pas de mots-clés pour cette catégorie et juste une classification générale de la façon dont les intentions Android sont utilisées.

Explicite Android Intention

Explicite Android Intention est l'intention dans laquelle vous définissez explicitement le composant qui doit être appelé par Android System.

 Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);

implicite Android intention

Implicite Android Intentions est l'intention. Au lieu de définir les composants exacts, vous définissez l'action que vous souhaitez effectuer. La décision de gérer cette action est laissée au système d'exploitation. Le système d'exploitation décide quel composant est le mieux à exécuter pour des intentions implicites. Voyons un exemple:

    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);

Pour plus d'informations, vous pouvez visiter ci-dessous

http://developer.Android.com/reference/Android/content/Intent.html

9
IntelliJ Amiya

Selon leur documentation:

Une intention est un objet qui fournit une liaison d'exécution entre des composants distincts (tels que deux activités). L’intention représente "l’intention de faire quelque chose" d’une application. Vous pouvez utiliser les intentions pour une grande variété de tâches, mais le plus souvent, elles sont utilisées pour démarrer une autre activité.

Voici le lien avec l'exemple: http://developer.Android.com/training/basics/firstapp/starting-activity.html#BuildIntent

Comme le décrit le document, pour commencer une activité (vous devez également comprendre en quoi consiste cette activité), utilisez l'intention décrite ci-dessous.

/** Called when the user clicks the Send button */
public void sendMessage(View view) {
    Intent intent = new Intent(this, DisplayMessageActivity.class);
    EditText editText = (EditText) findViewById(R.id.edit_message);
    String message = editText.getText().toString();
    intent.putExtra(EXTRA_MESSAGE, message);
    startActivity(intent);
}
9
kta

Une intention est une description abstraite d'une opération à effectuer. Il peut être utilisé avec startActivity pour lancer une activité, broadcastIntent pour l'envoyer à tout composant BroadcastReceiver intéressé, et startService (Intent) ou bindService (Intent, ServiceConnection, int) pour communiquer avec un service en arrière-plan.

Pour plus de détails, voir ces liens:

1). http://developer.Android.com/reference/Android/content/Intent.html

2) http://developer.Android.com/guide/topics/intents/intents-filters.html

3) http://www.vogella.de/articles/AndroidIntent/article.html

il y a beaucoup plus d'articles sont disponibles.

8
Dinesh Sharma

qu'est-ce que l'intention?

C'est un type de message ou d'information transmis aux composants. Il est utilisé pour lancer une activité, afficher une page Web, envoyer des SMS, envoyer des emails, etc.

Il existe deux types d'intentions dans Android:

Intention implicite
Intention explicite

Une intention implicite est utilisée pour appeler les composants système.

Exemple

Intent i = newIntent(Android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.Amazon.com”));

startActivity(i);

Explicite l'intention est utilisée pour appeler la classe d'activité.

Exemple

Intention d'intention = newIntent (this, SecondActivity.class);

startActivity(intent);

tu peux en lire plus

http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overviewhttp://developer.Android.com/reference/Android/content/Intent.html

5
Mina Fawzy

L'intention est une intention d'effectuer une opération.

En détail, vous pouvez vous référer

http://developer.Android.com/reference/Android/content/Intent.html

Aussi, dans mon blog

http://emergingandroidtech.blogspot.in/2014/11/what-is-intent-in-Android.html

Jetez un coup d'oeil si cela peut vous aider.

Je vous remercie.

2
Shriyanshu Jain

Une intention est une classe, qui lie les informations pour effectuer certaines actions.

exemple: transmettre des données d’une activité à une autre activité lorsque l’utilisateur effectue de telles actions

activité présente.

2
madarkife

Pour comprendre les intentions, je vous suggère de parcourir le site: http://developer.Android.com/guide/topics/intents/intents-filters.html

En outre, j'ai discuté des intentions avec des exemples sur mon blog personnel: http://androiddesk.wordpress.com/2011/12/24/explicit-intent/

http://androiddesk.wordpress.com/2012/01/13/implicit-intent/

Jetez un coup d'œil si vous pensez que cela serait utile.

Je vous remercie

2
Deepthi G

Dans une vue large, nous pouvons définir Intent comme

Lorsqu'une activité souhaite démarrer une autre activité, elle crée un objet appelé Intention qui spécifie quelle activité il souhaite démarrer.

1
Kartik Goyal

Les intentions sont utilisées pour lancer une autre activité à partir d'une activité. Elle est essentiellement utilisée à plusieurs fins, telles que l'envoi de données à une autre activité à partir d'une activité et à des fins de déclenchement.

Ils sont essentiellement de deux types

  1. Intentions implicites.

  2. Intentions explicites.

En tant que débutant, je le sais très bien, je pense que cela vous donnera une idée de base de Android intentions

0
Soorya Prakash

Une application Android peut contenir zéro activité ou plus. Lorsque votre application comporte plusieurs activités, vous devez souvent naviguer d’une activité à l’autre. Dans Android, vous naviguez entre les activités grâce à ce que l'on appelle une intention. Vous pouvez transmettre des données à l'activité que vous souhaitez démarrer par l'intention, en utilisant putExtra ().

0
Shaon Hasan