septembre
2011
Bonjour,
Aujourd’hui, je vous soumets un moyen simple de mettre en place des actions au premier lancement de votre application sur un nouveau téléphone. En d’autres termes, comment customiser le premier lancement de votre application?
L’idée est assez simple et s’appuie sur l’utilisation de l’objet SharedPreferences. Cet objet permet de stocker un ensemble de clef-valeur spécifiques à votre application au sein du système et de pouvoir les CRUD (create, read, update, delete) facilement.
L’idée est donc d’utiliser cette hashMap pour récupérer les valeurs spécifiques à votre application. En particulier un Boolean que j’appellerai Initialized qui permet de savoir si votre application a été déjà lancée sur l’appareil Android. Le code suivant vous montre son utilisation (ce code appartient à une classe de type Activity dans la méthode onCreate):
/**
* The key of the SharedPreference
*/
public static final String KEY = "MyProgramName";
/**
* The key for the initialized parameter
*/
public static final String INITIALIZED = "initialized";
....
//Dans la méthode onCreate:
// Vérifier que l'application a été initialisée
// Récupération de l'objet sharedPreference de l'application
SharedPreferences savedSession = activity.getSharedPreferences(MyLightConstants.KEY, Context.MODE_PRIVATE);
// Récupération de l'attribut initialized (si la clef n'est pas trouvée, la méthode renvoie FALSE)
initialized = savedSession.getBoolean(INITIALIZED, Boolean.FALSE);
//Dans le cas du premier lancement de l'application, initialized==FALSE
if (!initialized) {
//Mettre la variable Initialized à TRUE
Editor editor = activity.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
editor.putBoolean(INITIALIZED, Boolean.TRUE);
editor.commit();
//Et faire ses actions d'initialisation.
}
Remarquez que cette astuce n’est qu’un cas particulier de la persistance de données pour l’application. En effet pour persister vos données vous pouvez utiliser les méthodes onSaveInstance et onRestoreInstance (j’ai décrit leur utilisation dans les bouquins Android2EE) soit utiliser le principe des sharedPreferences. Il est préconisé d’utiliser dans la plupart des cas onSaveInstance et onRestoreInstance qui fonctionne exactement de la même manière. L’utilisation du shardePreference amène une souplesse dans le moment choisit pour la restauration et/ou la sauvegarde (et donc qui ne se ferront pas dans onResume et onPause, même si pour vous expliquer le principe c’est là que je positionne ces enregistrements/restaurations).
Dans la méthode onPause vous sauvegardez vos données. Dans la méthode onResume vous les restaurez:
Pour la sauvegarde des données (dans la méthode onPause donc):
Editor editor = activity.getSharedPreferences(KEY, Context.MODE_PRIVATE).edit();
//Ajout et modification des valeurs des clefs (putInt, putString,PutBoolean...):
editor.putBoolean(MY_KEY, MyValue);
//Et surtout ne pas oublier de faire le commit pour persister les modifications
editor.commit();
Pour la restauration des données (dans la méthode onResume donc):
SharedPreferences savedSession = getSharedPreferences(MyLightConstants.KEY, Context.MODE_PRIVATE);
//Récupération d'une valeur (de celle associée à la clef MY_INT_KEY)
//si la clef n'est pas trouvée la méthode renverra la valeur par défaut définie parle second paramètre (ici
// 255))
savedSession.getInt(MY_INT_KEY, 255);
Alors, merci qui?
Merci, Android2ee, les Ebooks de programmation Android :o)
Mathias Séguy
mathias.seguy.it@gmail.com
Auteur Android2EE
Ebooks pour apprendre la programmation sous Android.
Retrouvez moi sur Google+
Suivez moi sur Twitter
Rejoignez mon réseau LinkedIn ou Viadeo
Référence Android
Mots-clés
Archives
- mars 2015
- février 2015
- janvier 2015
- mai 2014
- mars 2014
- janvier 2014
- décembre 2013
- novembre 2013
- septembre 2013
- mai 2013
- mars 2013
- février 2013
- janvier 2013
- décembre 2012
- novembre 2012
- octobre 2012
- septembre 2012
- août 2012
- mai 2012
- avril 2012
- mars 2012
- janvier 2012
- décembre 2011
- novembre 2011
- septembre 2011