Vous êtes sur la page 1sur 6

19/03/12

Chapitre 2 : Les Activités (Activity)

C hapitre 2 : Les Activités (Activity)

Catégorie : COURS ANDROID Publié le Jeudi, 10 Mars 2011 11:37 Écrit par TAHAR HAOUET Affichages : 628 Introduction

Une activité est une composante d'une application Android qui fournit un écran avec lequel les utilisateurs peuvent

interagir avec l application dans le but de faire une tâche, comme la numérotation du téléphone, prendre une photo,

envoyer un e-mail, ou afficher une carte…

Chaque activité est proposée par une fenêtre dans laquelle elle présente son interface utilisateur. La fenêtre remplit

généralement l'écran, mais peut être plus petite que l'écran et flotter au-dessus des autres fenêtres.

Une application se compose généralement de plusieurs activités qui sont faiblement liés les uns aux autres.

En règle générale, une parmi les activités d une application est présentée comme l activité « main » de

l application et elle est présentée à l utilisateur lors du lancement de l application pour la 1 ère fois.

Chaque activité peut alors démarrer une autre activité en vue d'effectuer des actions différentes. Chaque fois qu'une

nouvelle activité démarre, l'activité précédente est arrêtée, mais le système préserve l'activité dans une pile (le

«back stack").

Quand une nouvelle activité démarre, elle est empilée dans le «back stack » et elle s affiche à l'utilisateur.

Le «Back Stack » fonctionne sur la base du «Last In, First Out » mécanisme de file d'attente, donc, lorsque

l'utilisateur fini avec l'activité actuelle et appuie sur la touche « BACK », l activité est dépilée de la pile (et détruite)

et la reprise de l'activité précédente.

Quand une activité est arrêtée en raison d'une nouvelle activité qui démarre, elle est informée de ce changement

d'état grâce à des méthodes de « call back » du cycle de vie de l activité.

Il existe plusieurs méthodes de Call Back que l'activité pourrait recevoir, en raison d'un changement dans son état.

Quand le système est en train de la créer, l'arrêter, la reprendre, ou de la détruire et chaque call back vous offre la

possibilité d'effectuer un travail spécifique qui convient à chaque changement d'état.

Par exemple, lorsqu'elle est arrêtée, votre activité doit libérer les objets de grande taille, telles que les connexions

réseaux ou base de données. Lorsque l'activité reprend, vous pouvez restaurer les ressources nécessaires et de

reprendre les actions qui ont été interrompues. Ces transitions d'état font tous partie du cycle de vie d'activité.

Création d'une activité

Pour créer une activité, vous devez créer une classe dérivée de la classe Activity (ou une sous-classe existante de

celle-ci). Dans votre classe, vous avez besoin de mettre en œuvre des méthodes de call back que le système les

appelles lorsque l'activité bascule entre différents états de son cycle de vie, comme lorsque l'activité est en cours

de création, arrêt, de reprise, ou de destruction. Les deux méthodes de call back les plus importants sont:

onCreate ()

Vous devez implémenter cette méthode. Le système appelle cette méthode lors de la création de votre activité. Au

sein de votre application, vous devez initialiser les composants essentiels de votre activité. Plus important encore,

c'est là que vous devez appeler setContentVie () pour définir la mise en page (layout) pour l'interface utilisateur

de l'activité.

package demo.tp1;

19/03/12

import android.app.Activity; import android.os.Bundle;

Chapitre 2 : Les Activités (Activity)

public class helloWorld extends Activity {

/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

}

}

OnPause () Le système appelle cette méthode quand l'utilisateur quitte votre activité (si elle ne signifie pas toujours que l'activité est détruite). C'est généralement là où vous devez faire toutes les modifications qui doivent être conservées au-delà de la session utilisateur en cours (car l'utilisateur pourrait ne pas revenir). Il existe plusieurs autres méthodes de call back du cycle de vie que vous devez utiliser afin de fournir une expérience utilisateur fluide entre les activités et gérer les interruptions imprévues qui causent l arrêt de votre activité et même sa destruction. Implémentation d'une interface utilisateur L'interface utilisateur pour une activité est fournie par une hiérarchie de vues. Des objets dérivés de la classe Vie . Chaque View contrôle un espace rectangulaire particulière dans la fenêtre de l'activité et peut répondre à une interaction utilisateur (événement). Par exemple, un View peut être un bouton qui déclenche une action lorsque l'utilisateur le touche. Android fournit un certain nombre de Views toutes faites pour être utilisés pour concevoir et organiser votre mise en page ou disposition (Layout). Les "Widgets" sont des Views qui fournissent un contrôle visuel (et interactif) des éléments de l'écran, tel qu'un bouton, champ de texte, case à cocher, ou juste une image. Les "Layouts" sont des Views dérivés de ViewGroup qui fournissent un modèle de mise en page (layout) unique pour ses Views enfant, comme une disposition linéaire(Linear Layout), une disposition en grille (Grid layout), ou la disposition relative (relative layout). Vous pouvez également dériver à partir des classes View et ViewGroup (ou sous-classes existantes) pour créer vos propres widgets et layout et les appliquer au Layout de l activité. La façon la plus commune pour définir une disposition utilisant des Views est un fichier de format XML enregistré dans les ressources de votre application. De cette façon, vous pouvez définir la conception de votre interface utilisateur séparément du code source qui définit le comportement de l'activité. Vous pouvez définir le format de l'interface utilisateur de votre activité avec la méthode setContentView(), en passant l'ID du layout. Cependant, vous pouvez également créer de nouvelles vues dans votre code d'activité et de construire une hiérarchie de la vue par l'insertion de nouvelles vues dans un objet ViewGroup, puis utiliser ce layout en passant le

19/03/12

Chapitre 2 : Les Activités (Activity)

ViewGroup racine à setContentView(). Déclarer l'activité dans le manifeste Vous devez déclarer votre activité dans le fichier de manifeste pour qu'elle soit accessible au système. Pour

déclarer votre activité, ouvrez votre fichier manifest et ajouter un élément <activity> comme un enfant de l'élément <application>. Par exemple :

<manifest

>

<application

>

<activity android:name=".ExampleActivity" />

</application

>

</manifest > L'élément <action> précise que c'est le point «principal» d'entrée à l'application. L élément <categor > précise que cette activité doit être inscrite dans le lanceur d'application du système (pour permettre aux utilisateurs de lancer cette activité). Si vous avez l'intention que votre application sera autonome et ne pas permettre à d'autres applications d activer ses Activity, alors vous n'avez pas besoin d autres filtres Intent. Une seule activité doit être «main» pour action et "launcher " pour catégorie. Les activités que vous ne voulez pas mettre à la disposition d'autres applications ne devraient pas avoir de filtres Intents. Toutefois, si vous souhaitez que votre activité répond aux intentions implicites qui sont produits à partir d'autres applications (et le vôtre), vous devez définir des filtres intent supplémentaires pour votre activité. Pour chaque type d'intent à la quelle vous souhaitez répondre, vous devez inclure une <intent-filter> qui comprend un élément <action> et, éventuellement, un élément <category> et / ou un élément <data>. Ces éléments vont spécifier le type d'intention à laquelle votre activité peut répondre. Cycle de vie d une activité Les activités dans le système sont gérées dans une pile. Quand une nouvelle activité est lancée, elle est placé sur le haut de la pile et devient l'activité en cours - l'activité précédente reste toujours en dessous de la pile, et ne viendra pas à l'avant-plan jusqu'à ce qu'il quitte la nouvelle activité. Une activité a essentiellement quatre états:

Si une activité est au premier plan de l'écran (en haut de la pile), elle est active ou en cours d'exécution. Si une activité a perdu le focus, mais est encore visible (qui est, une nouvelle activité non-full-size ou transparent a le focus sur le dessus de votre activité), elle est en pause. Une activité en pause est tout à fait vivante (elle conserve toutes les informations d'état et reste attaché au gestionnaire de fenêtres), mais peuvent être arrêtée par le système dans des situations extrêmes (peu de mémoire). Si une activité est complètement cachée par une autre activité, elle est arrêtée. elle conserve toutes les informations d'états, cependant, elle n'est plus visible à l'utilisateur si la fenêtre est caché et elle sera souvent arrêtée par le système lorsque la mémoire est nécessaire ailleurs. Si une activité est interrompue ou arrêtée, le système peut libérer l'activité de la mémoire en lui demandant soit de s arrêter, ou tout simplement tuer le processus. Quand elle est à nouveau affichée à l'utilisateur, elle doit être complètement renouvelées et restaurée à son état précédent. Le schéma suivant montre le diagramme d états importants d'une activité.

19/03/12

Chapitre 2 : Les Activités (Activity)

Les rectangles carrés représentent des méthodes de rappel (call-back), que vous pouvez mettre en œuvre pour effectuer des opérations lors du déplacement de l'activité entre les états. Les ovales de couleur sont les principaux états de l'activité

de couleur sont les principaux états de l'activité Quand une activité transite par les différents états

Quand une activité transite par les différents états décrits ci-dessus, elle est notifiée par le biais de diverses méthodes de rappel. Toutes les méthodes de rappel pourront être surchargées pour faire un travail approprié lorsque l activité change d'état. L'activité suivante comprend chacune des méthodes du cycle de vie:

publicclassExampleActivityextendsActivity{

@Override

publicvoid onCreate(BundlesavedInstanceState){

19/03/12

Chapitre 2 : Les Activités (Activity)

super.onCreate(savedInstanceState);

//Theactivityisbeingcreated.

}

@Override

protectedvoid onStart() {

super.onStart();

//Theactivityisabouttobecomevisible.

}

@Override

protectedvoid onResume() {

super.onResume();

//Theactivityhasbecomevisible(itisnow"resumed").

}

@Override

protectedvoid onPause() {

super.onPause();

//Anotheractivityistakingfocus(thisactivityisabouttobe"paused").

}

@Override

protectedvoid onStop() {

19/03/12

super.onStop();

Chapitre 2 : Les Activités (Activity)

//Theactivityisnolongervisible(itisnow"stopped")

}

@Override

protectedvoid onDestro () {

super.onDestroy();

//Theactivityisabouttobedestroyed.

}

}