Вы находитесь на странице: 1из 6

19/03/12

Chapitre 2 : Les Activits (Activity)

thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa

)y tivi tcA( s tivi tcA s eL : 2 er tipa hC

Catgorie : 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 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 d une application est prsente comme l activit main de l application et elle est prsente l utilisateur lors du lancement de l application 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 s affiche 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 , l activit 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 l activit. 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 les 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 setContentVie de l'activit. package demo.tp1; () pour dfinir la mise en page (layout) pour l'interface utilisateur

1/6

19/03/12

Chapitre 2 : Les Activits (Activity)

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 l arrt 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 Vie . 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 l activit. 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
thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa 2/6

19/03/12

Chapitre 2 : Les Activits (Activity)

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. L lment <categor > 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 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 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 la quelle 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 d une 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 s arrter, 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 d tats importants d'une activit.
thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa 3/6

19/03/12

Chapitre 2 : Les Activits (Activity)

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 l activit change d'tat. L'activit suivante comprend chacune des mthodes du cycle de vie: pbi casEapeciiyetnsAtvt { ulc ls xmlAtvt xed ciiy

@vrie Oerd

pbi vi oCet(udesvdntnett){ ulc od nraeBnl aeIsacSae


thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa 4/6

19/03/12

Chapitre 2 : Les Activits (Activity)

sproCet(aeIsacSae; ue.nraesvdntnett)

/ Teatvt i bigcetd / h ciiy s en rae.

@vrie Oerd

poetdvi oSat){ rtce od ntr(

sproSat) ue.ntr(;

/ Teatvt i aott bcm vsbe / h ciiy s bu o eoe iil.

@vrie Oerd

poetdvi oRsm( { rtce od neue)

sproRsm(; ue.neue)

/ Teatvt hsbcm vsbe(ti nw"eue". / h ciiy a eoe iil i s o rsmd)

@vrie Oerd

poetdvi oPue){ rtce od nas(

sproPue) ue.nas(;

/ Aohratvt i tkn fcs(hsatvt i aott b "asd) / nte ciiy s aig ou ti ciiy s bu o e pue".

@vrie Oerd

poetdvi oSo( { rtce od ntp)

thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa

5/6

19/03/12

Chapitre 2 : Les Activits (Activity)

sproSo(; ue.ntp)

/ Teatvt i n lne vsbe(ti nw"tpe" / h ciiy s o ogr iil i s o sopd)

@vrie Oerd

poetdvi oDsr ( { rtce od neto )

sproDsry) ue.neto(;

/ Teatvt i aott b dsryd / h ciiy s bu o e etoe.

thaouet.net/index.php/cours/programmationmobile/9-chapitre2android?tmpl=component&print=1&pa

6/6

Вам также может понравиться