Vous êtes sur la page 1sur 21

Chapitre III :

Notion d’activité

A.Hammache 1
Plan du Chapitre

Définitions

Etats d’une activité

Cycle de Vie d’une activité

L’activité dans le fichier Manifest

A.Hammache 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
A.Hammache
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 java.applet.Applet, point de
démarrage de toute application java, exécutée au
sein d’une page HTML.

A.Hammache 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

A.Hammache 5
Première activité
 L’activité étend la classe Activity (android.app.Activity)
 L’activité implémente la méthode
 OnCreate() :
- Initialise
- SetContentView()
import android.app.Activity;
import android.os.Bundle;

public class ExempleActivite extends Activity {

public void onCreate(Bundle stateSaved) {


super.onCreate(stateSaved);
setContentView(R.layout.interface);
}
}
A.Hammache 6
Cycle de vie d’une Activité

A.Hammache 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.

A.Hammache 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.

A.Hammache 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.

A.Hammache 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.

A.Hammache 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.

A.Hammache 12
Cycle de vie d’une Activité

 OnRestart()
 Similaire à onCreate().
 On a une activité qui a été
arretée précédemment.

A.Hammache 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().

A.Hammache 14
Cycle de vie d’une Activité

onDestroy
onCreate onStart onResume onStop
onPause

Interaction
Avec
l’utilisateur

Partie Visible

Cycle Entier (non visible)

A.Hammache 15
Exemple de Cycle de vie d’une Activité
import android.app.Activity; public void onResume()
import android.os.Bundle; {
super.onResume();
import android.util.Log; Log.d(tag, “Dans la méthode onResume()”);
public class ExempleActivite extends Activity { }

String tag = “CycleDeVie”; public void onPause()


public void onCreate(Bundle savedInstanceState) { {
super.onPause();
super.onCreate(savedInstanceState); Log.d(tag, “Dans la méthode onPause()”);
setContentView(R.layout.main); }

Log.d(tag, “dans la méthode onCreate()”); public void onStop()


} {
super.onStop();
public void onStart() Log.d(tag, “Dans la méthode onStop()”);
{ }

super.onStart(); public void onDestroy()


Log.d(tag, “Dans la méthode onStart()”); {
super.onDestroy();
} Log.d(tag, “Dans la méthode onDestroy() ”);
public void onRestart() }
}
{
super.onRestart();
A.Hammache
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

A.Hammache 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

A.Hammache 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

A.Hammache 19
Exemple

static final String Etat_SCORE = "ScoreJoueur";


private int ScoreCourant ;

@Override
protected void onSaveInstanceState (Bundle outState) {
outState.putInt(Etat_SCORE, ScoreCourant );
super.onSaveInstanceState(outState);
} Sauvegarder

@Override
protected void onRestoreInstanceState(Bundle
savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
ScoreCourant = savedInstanceState.getInt(Etat_SCORE);
}
Récupérer

A.Hammache 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="android.intent.action.MAIN"/>
<category
android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>

A.Hammache 21

Vous aimerez peut-être aussi