233 votes

Différence entre getDefaultSharedPreferences et getSharedPreferences

Quelle est la différence entre et dans Android ? Peut-on s’il vous plaît expliquer.

Merci d’avance.

237voto

copolii Points 2393

utilisera le nom par défaut comme « com.example.something_preferences », mais va nécessiter un nom.

en effet utilise (ci-dessous est directement à partir de la source Android) :

123voto

wiztrail Points 1522

Passons en revue les principaux points de différence:

  1. getDefaultSharedPreferences() utilise une valeur par défaut préférences de nom de fichier. Cette valeur par défaut est définie par l'application, de sorte que toutes les activités dans la même application de contexte peut y accéder facilement comme dans l'exemple suivant:

    SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
    if (spref.contains("email")) {
         String sEmailAddr = spref.getString("email", "");
    }
    

    Les préférences sont généralement stockées en /data/data/com.package.name/shared_prefs/com.package.name_preferences.xml.

  2. La méthode alternative - getSharedPreferences(name,mode) nécessite de préciser la préférence (fichier) nom et un mode de fonctionnement (par exemple, un soldat, world_readable, etc.)

Comme mentionné par copolii, le résultat est le même, mais la première option est plus simple et n'a pas la souplesse pour séparer plusieurs fichiers de préférences, qui est offert par la seconde option de l' getSharedPreferences(). Le partage des préférences entre les applications à l'aide d'un MODE_WORLD_READABLE indicateur d'opération est également quelque chose de possible à l'aide d' getSharedPreferences(), mais il est rarement utilisé.

À mon humble avis, getDefaultSharedPreferences() peut être utilisée en toute sécurité, sans entrer dans la confusion de plusieurs de préférence les noms de fichier qui sont sujettes à des fautes de frappe et de la confusion, sauf si vous voulez que les différents modules de votre application va utiliser différents fichiers de préférences. Normalement, ce n'est pas nécessaire. Si une application a besoin pour sauver un grand nombre de paramètres, probablement à l'aide de la base de données externe sera mieux car elle offre également une meilleure protection des données.

Si quelqu'un connaît une bonne raison d'utiliser régulièrement getSharedPreferences() et ne pas getDefaultSharedPreferences(), s'il vous plaît laissez-moi savoir en commentant ici.

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