Rendre les données persistantes dans Android

Dans mon application, il existe des parameters spécifiques à l’application, qui devraient être disponibles au prochain démarrage de mon application.

En d’autres termes, je veux que les données soient disponibles sur les sessions d’un cycle d’application.

Cela peut-il être réalisé sans utiliser de firebase database (sqlite).

De nombreuses applications peuvent permettre de capturer les préférences de l’utilisateur sur les parameters d’une application ou d’une activité spécifique. Pour ce faire, Android fournit un ensemble simple d’API.

Les préférences sont généralement des paires de valeurs de nom. Ils peuvent être stockés sous forme de «Préférences partagées» dans différentes activités d’une application (notez qu’à l’heure actuelle, il ne peut pas être partagé entre les processus). Ou cela peut être quelque chose qui doit être stocké spécifique à une activité.

  1. Préférences partagées: les préférences partagées peuvent être utilisées par tous les composants (activités, services, etc.) des applications.

  2. Préférences liées à l’activité: ces préférences ne peuvent être utilisées qu’avec l’activité et ne peuvent pas être utilisées par d’autres composants de l’application.

Préférences partagées:

Les préférences partagées sont gérées à l’aide de la méthode getSharedPreferences de la classe Context . Les préférences sont stockées dans un fichier, qui peut être un fichier personnalisé (1) ou le fichier par défaut (2).

(1) Voici comment obtenir l’instance lorsque vous souhaitez spécifier le nom du fichier

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

MODE_PRIVATE est le mode de fonctionnement des préférences. C’est le mode par défaut et signifie que le fichier créé ne sera accessible que par l’application appelante. Les deux autres modes pris en charge sont MODE_WORLD_READABLE et MODE_WORLD_WRITEABLE . Dans MODE_WORLD_READABLE autre application peut lire le fichier créé mais ne peut pas le modifier. Dans le cas de MODE_WORLD_WRITEABLE autres applications ont également des droits en écriture pour le fichier créé.

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

 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); 

Enfin, une fois que vous avez l’instance de préférences, voici comment récupérer les valeurs stockées à partir des préférences:

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

Pour stocker des valeurs dans le fichier de préférences, l’object SharedPreference.Editor doit être utilisé. Editor est l’interface nestede de la classe SharedPreference .

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

Editor prend également en charge des méthodes telles que remove() et clear() pour supprimer la valeur de préférence du fichier.

Préférences d’activité:

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

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

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

Le code pour stocker les valeurs est également le même que pour les préférences partagées.

 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, telles que le stockage de l’état d’activité dans la firebase database. Remarque: Android contient également un package appelé android.preference . Le package définit des classes pour implémenter l’interface utilisateur des préférences de l’application.

Pour voir d’autres exemples, consultez l’article de stockage de données d’Android sur le site des développeurs.

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

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

Et pour le récupérer:

 Ssortingng value = prefs.getSsortingng("my_pref", "default Value"); 

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