web-dev-qa-db-fra.com

Android getDefaultSharedPreferences

Mon code est:

final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
boolean hasBeenShown = prefs.getBoolean(eulaKey, false);

Renvoie toujours des valeurs différentes selon la version du système d'exploitation. Testé en 2.2, 2.3.4, 3.2, 4.0.3 - renvoie la valeur correcte. Mais pour le périphérique lame Zte avec 2.3.7 avec CianogenMod 7.1 - le résultat est toujours faux. Je suppose que la valeur par défaut de getBoolean.

Voici l'écriture de code booléen:

final String eulaKey = "mykey";
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();

Quelqu'un a-t-il une idée?

Mise à jour: comparaison de mon code actuel avec ma version précédente de code - il n'y a pas de différence de code. La seule différence est dans le manifeste: le code fonctionne Ok avec minVersion = 8 et targetVersion = 8 Maintenant, je compile avec minversion = 8 et target = 13/à cause d'Admob /. Peut-être que certaines API ont changé, mais je n'ai rien trouvé là-dessus.

SOLUTION: -Le démarrage de l'application à partir du raccourci et du menu me donne différentes DefaultSharedPreferences. Après avoir supprimé DefaultSharedPreferences de mon code - cela fonctionne parfaitement. Je ne peux pas simplement dire: les gens ne font pas de raccourcis, j'ai donc dû changer de code.

53
Kostadin

Essayez-le de cette façon:

final String eulaKey = "mykey";
Context mContext = getApplicationContext();
mPrefs = mContext.getSharedPreferences("myAppPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putBoolean(eulaKey, true);
editor.commit();

dans ce cas, vous pouvez spécifier votre propre nom de fichier de préférences (myAppPrefs) et contrôler la persmission d'accès à celui-ci. Les autres modes de fonctionnement incluent:

  • MODE_WORLD_READABLE
  • MODE_WORLD_WRITEABLE
  • MODE_MULTI_PROCESS
55