web-dev-qa-db-fra.com

Quelle est la différence entre activité et intention dans Android?

Quelqu'un peut-il m'expliquer la différence entre une "activité" et une "intention" sur la plate-forme Android?

32
Ruby

Dans un langage très simple, Activity est votre interface utilisateur et tout ce que vous pouvez faire avec une interface utilisateur. Lorsque vous passez d'une interface utilisateur à une autre, vous devez lancer cette nouvelle interface utilisateur avec un Intent. Intent est votre événement qui est transmis avec les données de la première interface utilisateur à une autre.

Les intentions peuvent également être utilisées entre les interfaces utilisateur et les services d'arrière-plan. Intent est également transmis lorsque vous souhaitez diffuser des données vers toutes les activités et tous les services en arrière-plan.

Intent vit comme un objet, l'activité vit avec un visage et des interactions. J'espère que cela a été utile.

46
Siddharth

Les réponses existantes conviennent, mais voici une définition très basique des deux avec quelques liens.

Activité

Une application composant pour afficher une interface utilisateur. La classe d'activité est l'endroit où toutes les interactions utilisateur sont gérées (pressions sur les boutons, sélections de liste). Une activité spécifie une disposition pour la représenter à l'écran.

Intention

Une intention est un message système. Cela peut être broadcast autour du système pour notifier un événement aux autres applications (ou les vôtres!), Ou il peut être utilisé pour demander au système d’afficher une nouvelle activité.

19
Gusdor

Si tout ce que vous savez sur les intentions, c'est lorsque vous les utilisez pour commencer une nouvelle activité, je peux alors comprendre votre confusion.

Dans le cas le plus simple, vous démarrez une nouvelle activité comme celle-ci:

Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);

On dirait bien que vous commencez une activité, et l’activité que vous commencez est «intentionnelle». Mais ce que vous faites réellement appelle la méthode startActivity() et vous lui transmettez un conteneur appelé intent. Ce conteneur indique à startActivity() quoi faire.

Vous pouvez le voir plus clairement lorsque vous passez des données à une nouvelle activité.

Intent intent = new Intent(this, SomeOtherActivity.class);
startActivity(intent);
intent.putExtra("ANIMAL_TYPE", "Unicorn");
intent.putExtra("ANIMAL_COLOR", "Ruby");
startActivity(intent);

Désormais, lorsque vous appelez startActivity(), il examine l'intention et sait qu'il doit démarrer la classe SomeOtherActivity. De plus, dans la classe SomeOtherActivity, vous pouvez accéder aux paires clé/valeur transmises à partir de l'intention comme ceci:

Bundle extras = getIntent().getExtras(); 
if(extras !=null) {
    String animal = extras.getString("ANIMAL_TYPE");
    String animalColor = extras.getString("ANIMAL_COLOR");
}
16
HalR

Ce sont différentes classes qui ne peuvent en aucun cas être échangées. L’utilisation attendue des sous-classes Activity consiste à contrôler le contenu et le comportement de la fenêtre de l’application. Intents, en revanche, sont de simples structures d'échange de données souvent utilisées pour lancer de nouvelles Activity 'es et leur transmettre des données, mais elles ont également d'autres utilisations.

4
The Vee

La classe d'activité se charge de créer pour vous une fenêtre (plein écran ou flottante) dans laquelle vous pouvez placer vos éléments d'interface utilisateur afin que les activités interagissent avec l'utilisateur.

Les intentions sont principalement utilisées lorsque vous souhaitez passer d’une vue à l’autre (par exemple, une activité).

Lorsque vous êtes actuellement dans ActivityOne.class et que vous appelez:

Intent i = new Intent(this, ActivityTwo.class);
startActivity(i); 

alors ActivityTwo sera montré à l'utilisateur.

3
behar

Activité: C'est comme une page Web, par exemple. maison, contact. Il contient toute la partie UI de l'application. 

Intention: vous pouvez considérer l’intention comme un moyen d’ouvrir une autre activité. Fondamentalement, il est utile d’ouvrir une nouvelle activité avec les données de l’activité précédente.

0
NeRaaj Pun Magar