Vous êtes sur la page 1sur 41

ACTIVITY ANDROID

M. Pierre Christophe B. FAYE


Introduction

Une activité (sous classe d’Activity) représente un unique écran de l’UI d’une
application Android. Une application contient en général plusieurs activités.

Par exemple,

une application de courriel : une activité pour la composition, une activité


pour la lecture, indépendante l’une de l’autre. Ces activités peuvent être
lancées par d’autres applications.

Version 2021 2
Introduction

Tout l’intérêt d’Android est de faciliter l’utilisation de l’ensemble des


composants présents dans le système, et donc notamment des différentes
activités fournies par les applications.
Une activité est la composante principale d'une application sous Android.
L'activity est le métier de l'application et possède généralement une View au
minimum, c'est à dire un écran graphique.

Version 2021 3
Introduction

La classe Activity est un élément crucial d'une application Android. La façon

dont les activités sont lancées et assemblées est une partie fondamentale du

modèle d'application de la plate-forme. Contrairement aux paradigmes de

programmation dans lesquels les applications sont lancées avec une méthode

main (), le système Android initie du code dans une instance d'activité en

invoquant des méthodes de rappel spécifiques correspondant à des étapes

spécifiques de son cycle de vie. Version 2021 4


Le concept d'activité

L'expérience de l'application mobile diffère de son homologue de bureau


dans la mesure où l’intéraction d'un utilisateur avec l'application ne
commence pas toujours au même endroit.

Version 2021 5
Le concept d'activité

La classe Activity est conçue pour faciliter ce paradigme. Lorsqu'une


application en appelle une autre, l'application appelante appelle une
activité dans l'autre application, plutôt que l'application comme un
ensemble atomique. De cette manière, l'activité sert de point d'entrée pour
l'interaction d'une application avec l'utilisateur.

Vous implémentez une activité en tant que sous-classe de la classe Activity.

Version 2021 6
Le concept d'activité

Configuration du manifeste

AndroidManifest.xml

Pour que votre application puisse utiliser des activités, vous devez déclarer les
activités et certains de leurs attributs dans le manifeste.

Version 2021 7
Le concept d'activité

Déclaration des activités


Pour déclarer votre activité, ouvrez votre fichier manifeste et ajoutez un
élément <activity> en tant qu'enfant de l'élément <application>.

Version 2021 8
Le concept d'activité

Déclaration des activités


Le seul attribut requis pour cet élément est android: name, qui spécifie le
nom de classe de l'activité.

Vous pouvez également ajouter des attributs qui définissent des


caractéristiques d'activité telles que le libellé, l'icône ou le thème de
l'interface utilisateur.

Version 2021 9
Le concept d'activité

Déclarer les filtres d'intention

Les filtres d'intention sont une fonctionnalité très puissante de


la plateforme Android. Ils offrent la possibilité de lancer une
activité basée non seulement sur une demande explicite, mais
aussi implicite.
Version 2021 10
Le concept d'activité

Déclarer les filtres d'intention


Par exemple, une demande explicite peut indiquer au système de
"Démarrer l'activité Envoyer un e-mail dans l'application Gmail".

En revanche,
une demande implicite indique au système de "démarrer un écran
Envoyer un e-mail dans toute activité pouvant effectuer le travail".
Lorsque l'interface utilisateur demande à un utilisateur quelle application
utiliser pour exécuter une tâche, il s'agit d'un filtre d'intention.
Version 2021 11
Le concept d'activité

Déclarer les filtres d'intention


Vous pouvez tirer parti de cette fonctionnalité en déclarant un attribut <intent-
filter> dans l'élément <activity>.
La définition de cet élément inclut un élément <action> et, facultativement, un
élément <category> et / ou un élément <data>. Ces éléments se combinent
pour spécifier le type d'intention auquel votre activité peut répondre.

Version 2021 12
Le concept d'activité

Déclarer les filtres d'intention


Par exemple, l'extrait de code suivant montre comment
configurer une activité qui envoie des données de texte
et reçoit des demandes d'autres activités pour ce faire:

Version 2021 13
Le concept d'activité
Déclarer les filtres d'intention

Dans cet exemple, l'élément <action> spécifie que cette activité envoie des
données.

La déclaration de l'élément <category> en tant que DEFAULT permet à


l'activité de recevoir des demandes de lancement.

L'élément <data> spécifie le type de données que cette activité peut envoyer.
L'extrait de code suivant montre comment appeler l'activité décrite ci-dessus:
Version 2021 14
Le concept d'activité

Déclarer les filtres d'intention

Version 2021 15
Le concept d'activité
Déclaration des permissions
<activity> du manifeste pour contrôler quelles applications peuvent
démarrer une activité particulière.

Une activité parent ne peut pas lancer une activité enfant à moins que les
deux activités aient les mêmes autorisations dans le fichier de configuration.

Version 2021 16
Manifest Overview

Chaque projet d'application doit avoir un fichier


AndroidManifest.xml (avec précisément ce nom) à la racine du
jeu de sources du projet. Le fichier manifeste décrit des
informations essentielles sur votre application pour les outils de
construction Android, le système d'exploitation Android et
Google Play.
Version 2021 17
Le concept d'activité

Déclaration des permissions

Version 2021 18
Le concept d'activité

Déclaration des permissions

Si vous déclarez un élément <uses-permission> pour une activité particulière,


l'activité d'appel doit avoir un élément <uses-permission> correspondant.

Version 2021 19
Autorisations
Les applications Android doivent demander l'autorisation d'accéder à des
données utilisateur sensibles (telles que des contacts et des SMS) ou à
certaines fonctionnalités du système (telles que l'accès à la caméra et à
Internet). Chaque autorisation est identifiée par une étiquette unique. Par
exemple, une application qui doit envoyer des messages SMS doit avoir la
ligne suivante dans le manifeste:

Version 2021 20
• <uses-feature>
L'élément <uses-feature> vous permet de déclarer les fonctionnalités
matérielles et logicielles dont votre application a besoin

Version 2021 21
Version 2021 22
Le concept d'activité

cycle de vie de l'activité

Au cours de sa vie, une activité passe par un certain


nombre d'états

Version 2021 23
Cycle de vie de l'activité

Version 2021 24
Cycle de vie de l'activité

Version 2021 25
Cycle de vie de l'activité

onCreate()

• Exécuté́ quand l’utilisateur clique sur l’icône de l’application pour

une première fois. Elle est aussi utilisé pour l’initialisation :vue XML;

des fichiers/données temporaires;

• se déclenche lorsque le système crée votre activité.


Lorsque onCreate () se termine, le rappel suivant est toujours onStart ().
Version 2021 26
Cycle de vie de l'activité

onStart ()
Lorsque onCreate () se termine, l'activité passe à l'état “Started” et l'activité
devient visible pour l'utilisateur. Ce rappel contient les derniers préparatifs de
l'activité pour arriver au premier plan et devenir interactif.

Version 2021 27
Cycle de vie de l'activité

onResume()
Le système appelle cette methode juste avant que l'activité commence à

interagir avec l'utilisateur. À ce stade, l'activité se trouve en haut de la pile

d'activités et capture toutes les entrées utilisateur. La plupart des

fonctionnalités de base d'une application sont implémentées dans la

méthode onResume ().


Version 2021 28
Cycle de vie de l'activité

onPause()
Le système appelle onPause () lorsque l'activité perd le focus et
passe à l'état inactif. Cet état se produit lorsque, par exemple,
l'utilisateur appuie sur le bouton Précédent ou Récents.
Lorsque le système appelle onPause () pour votre activité, cela signifie techniquement que votre activité est encore
partiellement visible, mais indique le plus souvent que l'utilisateur quitte l'activité et que l'activité passera bientôt
à l'état Arrêté ou Reprise.
Version 2021 29
Cycle de vie de l'activité

onPause()
Important

onPause () suit toujours onResume ().


Une fois que onPause () a fini d'exécuter, le prochain rappel est soit onStop ()
ou onResume (), selon ce qui se passe après que l'activité passe en état
Suspendu.

Version 2021 30
Cycle de vie de l'activité

onStop()
Le système appelle onStop() lorsque l'activité n'est plus visible pour
l'utilisateur. Cela peut se produire car l'activité est en cours de
destruction, une nouvelle activité est en cours ou une activité
existante passe à l'état Reprise et couvre l'activité arrêtée. Dans tous
ces cas, l'activité arrêtée n'est plus visible du tout.
Version 2021 31
Cycle de vie de l'activité

onStop()
• Exécuté avant chaque mise en sommeil
• Exécuté avant chaque onDestroy()
• Libération des ressources

Version 2021 32
Cycle de vie de l'activité

onRestart()
Le système appelle cette méthode lorsqu'une activité dans
l'état Arrêté est sur le point de redémarrer. OnRestart ()
restaure l'état de l'activité à partir du moment où elle a
été arrêtée. Elle est toujours suivi par onStart ().
Version 2021 33
Cycle de vie de l'activité

onDestroy ()
Le système appelle cette méthode avant qu'une activité ne soit
détruite. Elle est la dernière instruction(commande) que l'activité
reçoit. OnDestroy () est généralement implémenté pour s'assurer
que toutes les ressources d'une activité sont libérées lorsque
l'activité ou le processus qui la contient est détruit.
Version 2021 34
Cycle de vie de l'activité

onDestroy ()

Exécuté lors du kill / de l’arrêt de l’activité;

onCreate() devra à nouveau être exécuté pour obtenir à nouveau


l’activité.
• libération des ressources
fichiers temporaires
Version 2021 35
Cycle de vie de l'activité

Version 2021 36
Cycle de vie de l'activité

Il existe deux autres méthodes un peu particulière qui n'apparaissent pas dans

le cycle de vie:

onSaveInstanceState() onRetainNonConfigurationInstance()

qui sont déclenchée lorsqu'il faut mémoriser l'état d'une activité suite à une

relance de celle-ci. Les causes de cette relance pouvant être un manque de

mémoire alors que l'activité est en pause, un changement de la configuration

écran (rotation, ouverture d'un clavier par exemple) forçant à redessiner les

widgets de l'activité,
Version 2021 37
Cycle de vie de l'activité

Lorsqu'un changement de configuration se produit, l'activité est


détruite et recréée. Pour préserver les données d'état transitoire
simples de l'activité, vous devez remplacer la méthode
onSaveInstanceState () pour enregistrer les données, puis utiliser
les rappels onCreate () ou onRestoreInstanceState () pour recréer
l'état de l'instance.
Version 2021 38
Activity

Une application peut contenir plusieurs Activities


Ces Activities sont accessibles via des «Intents» L’Activity
principale est lancée via le launcher Android
Une Activity est lancée soit de manière explicite soit de
manière implicite.
Version 2021 39
Activity

Différents événements, déclenchés par l'utilisateur et déclenchés


par le système, peuvent entraîner la transition d'une activité d'un
état à un autre.
Un certain nombre d'événements peuvent déclencher un
changement de configuration. L'exemple le plus frappant est peut-
être un changement entre les orientations portrait et paysage.
Version 2021 40
Version 2021 41

Vous aimerez peut-être aussi