Chapitre III :
Notion d’activité
[Link] 1
Plan du Chapitre
Définitions
Etats d’une activité
Cycle de Vie d’une activité
L’activité dans le fichier Manifest
[Link] 2
Les composants d’une App Android
Activities Services
1. Offre Une Interface utilisateur 1. Pas d’Interface
2. Généralement représente Un
seul écran 2. S’excute en Arrière Plan
Etend la classe Service
A un cycle de vie 3.
3.
4. Étend la classe Activity
Application= ensemble de composants Android
Intent/Broadcast Receiver Content Provider
1. Reçoit et répond aux 1. Mit les données d’une
broadcast Intents application accessibles à
d’autres Apps
2. Pas d’IU mais peut démarrer 2. Données sauvegardées dans la
une Activity base de données SQLite
3. Etend la classe BroadcastReceiver 3. Extend la classe ContentProvider
[Link]
Définitions
• Une activité et l’élément de base de toute
application Android.
• Une application contient généralement plusieurs
activités.
• Elle est l’équivalent d’une classe java contenant la
méthode « main ».
Ou la classe [Link], point de
démarrage de toute application java, exécutée au
sein d’une page HTML.
[Link] 4
Etats d’une Activité
Arrivée d’un Appel
Appel
Farm Heroes Saga Farm Heroes Saga
Fin de l’ Appel
Farm Heroes Saga Farm Heroes Saga
[Link] 5
Première activité
L’activité étend la classe Activity ([Link])
L’activité implémente la méthode
OnCreate() :
- Initialise
- SetContentView()
import [Link];
import [Link];
public class ExempleActivite extends Activity {
public void onCreate(Bundle stateSaved) {
[Link](stateSaved);
setContentView([Link]);
}
}
[Link] 6
Cycle de vie d’une Activité
[Link] 7
Cycle de vie d’une Activité
OnCreate()
Applée lors de la création
de l’activité.
Doit contenir les
opérations
d’initialisation.
A un paramètre de type
Bundle (état).
Si elle se termine avec
succés, alors la méthode
onStart() est appelée.
[Link] 8
Cycle de vie d’une Activité
OnStart()
Applée lors de la fin de
onCreate().
Appelée juste avant que
l’activité soit visible à
l’utilisateur.
Si l’activité a le focus alors
onResume() est appelée.
Sinon onStop() est
appelée.
[Link] 9
Cycle de vie d’une Activité
OnResume()
Appelée lorsque l’activité est
prête à recevoir des entrées
de la part de l’utilisateur.
(Ré-)initialisation des
ressources : GPS, etc..
Si elle se termine
normalement alors l’activité
est en exécution.
[Link] 10
Cycle de vie d’une Activité
OnPause()
Appelée lors qu’une autre
activité passe au premier plan
(boite de dialogue).
Arrêter les animations et les
tâches de fonds.
Arrêter la consommation de
la CPU.
Libération des ressources (
GPS, Caméra, etc.).
L’exécution de cette
méthode doit être rapide.
[Link] 11
Cycle de vie d’une Activité
OnStop()
L’activité n’est plus visible
pour l’utilisateur.
Peut être appelée lorsque :
Une autre activité vient
au premier plan (appel).
L’activité est à détruire.
L’utilisateur lance une
autre activité de
l’application.
[Link] 12
Cycle de vie d’une Activité
OnRestart()
Similaire à onCreate().
On a une activité qui a été
arretée précédemment.
[Link] 13
Cycle de vie d’une Activité
OnDestroy()
L’activité est à détruire.
Peut être appelée lorsque :
Le système a besoin
d’espace mémoire.
L’utilisateur tape sur le
bouton retour.
Si on fait appel à la
méthode finish().
[Link] 14
Cycle de vie d’une Activité
onDestroy
onCreate onStart onResume onStop
onPause
Interaction
Avec
l’utilisateur
Partie Visible
Cycle Entier (non visible)
[Link] 15
Exemple de Cycle de vie d’une Activité
import [Link]; public void onResume()
import [Link]; {
[Link]();
import [Link]; Log.d(tag, “Dans la méthode onResume()”);
public class ExempleActivite extends Activity { }
String tag = “CycleDeVie”; public void onPause()
public void onCreate(Bundle savedInstanceState) { {
[Link]();
[Link](savedInstanceState); Log.d(tag, “Dans la méthode onPause()”);
setContentView([Link]); }
Log.d(tag, “dans la méthode onCreate()”); public void onStop()
} {
[Link]();
public void onStart() Log.d(tag, “Dans la méthode onStop()”);
{ }
[Link](); public void onDestroy()
Log.d(tag, “Dans la méthode onStart()”); {
[Link]();
} Log.d(tag, “Dans la méthode onDestroy() ”);
public void onRestart() }
}
{
[Link]();
[Link]
Log.d(tag, “Dans la méthode onRestart()”); 16
}
Sauvegarde de l’état (persistance)
• Pour éviter la perte de données, notamment si le système
détruit l’activité, lorsqu’il a besoin de mémoire, il faut alors les
sauvegarder.
• Plusieurs options sont offertes:
Bundle
BDD (SQLite)
Fichiers
[Link] 17
Sauvegarde de l’état (persistance)
• Bundle est un tableau associatif Clé/Valeur typé, il offre :
Des méthodes pour stocker les données : putBoolean (String
key, boolean value), putInt, putParceable, putSerializable, etc.
Des méthodes pour récupérer les données : getBoolean
(String key), getInt, getParceable, getSerializable, etc.
• Parceable décrit comment stocker un objet complexe dans un
Parcel
[Link] 18
Sauvegarde de l’état (persistance)
La classe Activity offre deux méthodes pour sauvegarder et récupérer l’état
(données) :
onSaveInstanceState (Bundle monBundle)
onRestoreInstanceState (Bundle monBundle)
Il suffit alors de les redéfinir
[Link] 19
Exemple
static final String Etat_SCORE = "ScoreJoueur";
private int ScoreCourant ;
@Override
protected void onSaveInstanceState (Bundle outState) {
[Link](Etat_SCORE, ScoreCourant );
[Link](outState);
} Sauvegarder
@Override
protected void onRestoreInstanceState(Bundle
savedInstanceState) {
[Link](savedInstanceState);
ScoreCourant = [Link](Etat_SCORE);
}
Récupérer
[Link] 20
L’activité dans le manifest
La dernière étape pour rendre l’activité visible par le système Android,
consite à la déclarer dans le fichier manifest :
<activity android:name=".ExempleActivite"
android:label="@string/app_name">
<intent-filter>
<action
android:name="[Link]"/>
<category
android:name="[Link]"/>
</intent-filter>
</activity>
[Link] 21