You are on page 1of 6

Chapitre 2 : Les Activits (Activity) Introduction Une activit est une composante d'une application Android qui fournit

un cran avec lequel les utilisateurs peuvent interagir avec lapplication dans le but de faire une tche, comme la numrotation du tlphone, prendre une photo, envoyer un e-mail, ou afficher une carte Chaque activit est propose par une fentre dans laquelle elle prsente son interface utilisateur. La fentre remplit gnralement l'cran, mais peut tre plus petite que l'cran et flotter au-dessus des autres fentres. Une application se compose gnralement de plusieurs activits qui sont faiblement lis les uns aux autres. En rgle gnrale, une parmi les activits dune application est prsente comme lactivit main de lapplication et elle est prsente lutilisateur lors du lancement de lapplication pour la 1re fois. Chaque activit peut alors dmarrer une autre activit en vue d'effectuer des actions diffrentes. Chaque fois qu'une nouvelle activit dmarre, l'activit prcdente est arrte, mais le systme prserve l'activit dans une pile (le back stack"). Quand une nouvelle activit dmarre, elle est empile dans le back stack et elle saffiche l'utilisateur. Le Back Stack fonctionne sur la base du Last In, First Out mcanisme de file d'attente, donc, lorsque l'utilisateur fini avec l'activit actuelle et appuie sur la touche BACK , lactivit est dpile de la pile (et dtruite) et la reprise de l'activit prcdente. Quand une activit est arrte en raison d'une nouvelle activit qui dmarre, elle est informe de ce changement d'tat grce des mthodes de call back du cycle de vie de lactivit. Il existe plusieurs mthodes de Call Back que l'activit pourrait recevoir, en raison d'un changement dans son tat. Quand le systme est en train de la crer, l'arrter, la reprendre, ou de la dtruire et chaque call back vous offre la possibilit d'effectuer un travail spcifique qui convient chaque changement d'tat. Par exemple, lorsqu'elle est arrte, votre activit doit librer les objets de grande taille, telles que les connexions rseaux ou base de donnes. Lorsque l'activit reprend, vous pouvez restaurer les ressources ncessaires et de reprendre les actions qui ont t interrompues. Ces transitions d'tat font tous partie du cycle de vie d'activit. Cration d'une activit Pour crer une activit, vous devez crer une classe drive de la classe Activity (ou une sous-classe existante de celle-ci). Dans votre classe, vous avez besoin de mettre en uvre

des mthodes de call back que le systme appelles lorsque l'activit bascule entre diffrents tats de son cycle de vie, comme lorsque l'activit est en cours de cration, arrt, de reprise, ou de destruction. Les deux mthodes de call back les plus importants sont: onCreate () Vous devez implmenter cette mthode. Le systme appelle cette mthode lors de la cration 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 setContentView () pour dfinir la mise en page (layout) pour l'interface utilisateur de l'activit.
package demo.tp1; import android.app.Activity; import android.os.Bundle; 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 systme appelle cette mthode quand l'utilisateur quitte votre activit (si elle ne signifie pas toujours que l'activit est dtruite). C'est gnralement l o vous devez faire toutes les modifications qui doivent tre conserves au-del de la session utilisateur en cours (car l'utilisateur pourrait ne pas revenir). Il existe plusieurs autres mthodes de call back du cycle de vie que vous devez utiliser afin de fournir une exprience utilisateur fluide entre les activits et grer les interruptions imprvues qui causent larrt de votre activit et mme sa destruction. Implmentation d'une interface utilisateur L'interface utilisateur pour une activit est fournie par une hirarchie de vues. Des objets drivs de la classe View. Chaque View contrle un espace rectangulaire particulire dans la fentre de l'activit et peut rpondre une interaction utilisateur (vnement). Par exemple, un View peut tre un bouton qui dclenche une action lorsque l'utilisateur le touche.

Android fournit un certain nombre de Views toutes faites pour tre utiliss pour concevoir et organiser votre mise en page ou disposition (Layout). Les "Widgets" sont des Views qui fournissent un contrle visuel (et interactif) des lments de l'cran, tel qu'un bouton, champ de texte, case cocher, ou juste une image. Les "Layouts" sont des Views drivs de ViewGroup qui fournissent un modle de mise en page (layout) unique pour ses Views enfant, comme une disposition linaire(Linear Layout), une disposition en grille (Grid layout), ou la disposition relative (relative layout). Vous pouvez galement driver partir des classes View et ViewGroup (ou sous-classes existantes) pour crer vos propres widgets et layout et les appliquer au Layout de lactivit. La faon la plus commune pour dfinir une disposition utilisant des Views est un fichier de format XML enregistr dans les ressources de votre application. De cette faon, vous pouvez dfinir la conception de votre interface utilisateur sparment du code source qui dfinit le comportement de l'activit. Vous pouvez dfinir le format de l'interface utilisateur de votre activit avec la mthode setContentView(), en passant l'ID du layout. Cependant, vous pouvez galement crer de nouvelles vues dans votre code d'activit et de construire une hirarchie de la vue par l'insertion de nouvelles vues dans un objet ViewGroup, puis utiliser ce layout en passant le ViewGroup racine setContentView(). Dclarer l'activit dans le manifeste Vous devez dclarer votre activit dans le fichier de manifeste pour qu'elle soit accessible au systme. Pour dclarer votre activit, ouvrez votre fichier manifest et ajouter un lment <activity> comme un enfant de l'lment <application>. Par exemple :
<manifest ... > <application ... > <activity android:name=".ExampleActivity" /> ... </application ... > ... </manifest >

L'lment <action> prcise que c'est le point principal d'entre l'application. Llment <category> prcise que cette activit doit tre inscrite dans le lanceur d'application du systme (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 dactiver ses Activity, alors vous n'avez pas besoin dautres filtres Intent.

Une seule activit doit tre main pour action et "launcher " pour catgorie. Les activits 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 rpond aux intentions implicites qui sont produits partir d'autres applications (et le vtre), vous devez dfinir des filtres intent supplmentaires pour votre activit. Pour chaque type d'intent laquelle vous souhaitez rpondre, vous devez inclure une <intent-filter> qui comprend un lment <action> et, ventuellement, un lment <category> et / ou un lment <data>. Ces lments vont spcifier le type d'intention laquelle votre activit peut rpondre. Cycle de vie dune activit Les activits dans le systme sont gres dans une pile. Quand une nouvelle activit est lance, elle est plac sur le haut de la pile et devient l'activit en cours - l'activit prcdente 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'excution. 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 fentres), mais peuvent tre arrte par le systme dans des situations extrmes (peu de mmoire). Si une activit est compltement cache par une autre activit, elle est arrte. elle conserve toutes les informations d'tats, cependant, elle n'est plus visible l'utilisateur si la fentre est cach et elle sera souvent arrte par le systme lorsque la mmoire est ncessaire ailleurs. Si une activit est interrompue ou arrte, le systme peut librer l'activit de la mmoire en lui demandant soit de sarrter, ou tout simplement tuer le processus. Quand elle est nouveau affiche l'utilisateur, elle doit tre compltement renouveles et restaure son tat prcdent.

Le schma suivant montre le diagramme dtats importants d'une activit. Les rectangles carrs reprsentent des mthodes de rappel (call-back), que vous pouvez mettre en uvre pour effectuer des oprations lors du dplacement de l'activit entre les tats. Les ovales de couleur sont les principaux tats de l'activit

Quand une activit transite par les diffrents tats dcrits ci-dessus, elle est notifie par le biais de diverses mthodes de rappel. Toutes les mthodes de rappel pourront tre surcharges pour faire un travail appropri lorsque lactivit change d'tat. L'activit suivante comprend chacune des mthodes du cycle de vie:
public class ExampleActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // The activity is being created. }

@Override protected void onStart() { super.onStart(); // The activity is about to become visible. } @Override protected void onResume() { super.onResume(); // The activity has become visible (it is now "resumed"). } @Override protected void onPause() { super.onPause(); // Another activity is taking focus (this activity is about to be "paused"). } @Override protected void onStop() { super.onStop(); // The activity is no longer visible (it is now "stopped") } @Override protected void onDestroy() { super.onDestroy(); // The activity is about to be destroyed. } }

You might also like