58 votes

Rendre les données persistantes dans Android

Dans mon application, certains paramètres spécifiques à l'application doivent être disponibles au prochain démarrage de l'application.

En d'autres termes, je souhaite que les données soient disponibles au cours des sessions d'un cycle d'application.

Cela peut-il être réalisé sans utiliser de base de données (sqlite).

102voto

Pentium10 Points 68884

De nombreuses applications peuvent fournir un moyen de capturer les préférences de l'utilisateur sur les paramètres d'une application spécifique ou d'une activité. Pour soutenir cela, Android fournit un simple ensemble d'Api.

Les préférences sont généralement des paires nom / valeur. Ils peuvent être stockées en tant que "Partagé Préférences" à travers diverses activités dans une application (note: actuellement, il ne peut pas être partagée à travers des processus). Ou il peut être quelque chose qui doit être stockée spécifique à une activité.

  1. Partagé Préférences: L'partagé les préférences peuvent être utilisés par toutes les composantes (activités, services, etc.) des applications.

  2. L'activité manipulée préférences: Ces préférences ne peuvent être utilisés avec de l'activité et ne peut pas être utilisé par d'autres composants de l'application.

Partagé Préférences:

L'partagé préférences sont gérés avec l'aide de l' getSharedPreferences méthode de Context classe. Les préférences sont stockées dans un fichier par défaut(1) ou vous pouvez spécifier un nom de fichier(2) à être utilisé pour désigner les préférences.

(1) Voici comment vous obtenez l'instance lorsque vous spécifiez le nom de fichier

public static final String PREF_FILE_NAME = "PrefFile";
   SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);

MODE_PRIVATE est le mode de fonctionnement pour les préférences. C'est le mode par défaut et signifie que le fichier créé sera accessible uniquement par l'application appelante. Deux autres mode de prises en charge sont l' MODE_WORLD_READABLE et MODE_WORLD_WRITEABLE. En MODE_WORLD_READABLE autre application ne peut lire le fichier créé, mais ne peut pas le modifier. Dans le cas d' MODE_WORLD_WRITEABLE d'autres applications ont également des autorisations d'écriture pour le fichier créé.

(2) La méthode recommandée est d'utiliser le mode par défaut, sans spécifier le nom de fichier:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);

Enfin, une fois que vous avez les préférences d'exemple, voici comment vous pouvez récupérer les valeurs stockées dans les préférences:

 int storedPreference = preferences.getInt("storedInt", 0);

Pour stocker des valeurs dans le fichier de préférences SharedPreference.Editor objet doit être utilisé. Editor est le sous-interface de l' SharedPreference classe.

SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

L'éditeur a également des méthodes de soutien, comme remove() et clear() pour supprimer la valeur de préférence à partir du fichier.

L'Activité Préférences:

L'partagé les préférences peuvent être utilisés par d'autres composants de l'application. Mais si vous n'avez pas besoin de partager les préférences avec d'autres composants et que vous voulez avoir des activités privées préférences. Vous pouvez le faire avec l'aide d' getPreferences() méthode de l'activité. L' getPreference méthode de getSharedPreferences() méthode avec le nom de la classe d'activité de la préférence de nom de fichier.

Voici le code pour obtenir les préférences:

SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);

Le code de stocker des valeurs est également de même qu'en cas de partage des préférences.

SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();

Vous pouvez également utiliser d'autres méthodes comme le stockage de l'activité de l'état dans la base de données. Note Android contient également un package appelé android.preference. Le paquet de définir des classes pour mettre en œuvre les préférences de l'application de l'INTERFACE utilisateur.

Voir plus d'exemples de vérifier Android de Stockage de Données post sur le site des développeurs.

19voto

SirDarius Points 13074

Vous devez utiliser les préférences partagées:

 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
prefs.edit().putString("my_pref", "my_value").commit();
 

Et pour le récupérer:

 String value = prefs.getString("my_pref", "default Value");
 

Ces préférences sont persistantes et sont également intégrées aux activités de préférence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X