web-dev-qa-db-fra.com

Préférences partagées - longueur maximale d'une valeur unique

Je stocke String dans des préférences partagées, mais je n'ai pas pu trouver la longueur maximale de chaîne que je peux stocker. Connaissez-vous cette valeur?

41
Waypoint

Par Romain Guy De la question demandé ici ,

Quelle que soit la longueur maximale d'une chaîne Java est. Donc quelque chose comme les caractères Integer.MAX_VALUE.

Je suppose que SharedPreference est un fichier XML stocké avec une balise si vous ne stockez qu'une seule paire/objet. Il n'y a donc pas de limite pour écrire String si vous pensez que vous écrivez dans un fichier .. (Théoriquement)

Mais En fait ce qui se passe, c'est que, pendant que vous attribuez une valeur à SharedPreference en utilisant put/get à ce moment-là, vous lisez/écrivez la valeur dans l'objet chaîne .. de sorte que la limite devient de stocker la valeur à un moment égal à Limite de taille de l'objet chaîne de Java.

Ainsi, lors de l'écriture du code: Limite de SharedPreference String Size = Java String Object Size Limit (Pratiquement)

73
MKJParekh

La préférence partagée est stockée dans /data/data/[package_name]/shared_prefs/[app name].xml, Je pense qu'il y a pas de limite selon Android.

19
Sunil Kumar Sahoo

Lorsque j'essaie d'enregistrer la chaîne de longueur maximale dans les SharedPreferences de mon appareil, il déclenche une exception de mémoire lorsque les données SharedPreferences dépassent 1,42 Mo.

Donc, si vous avez plus de 1,42 Mo de taille de données à sauvegarder, il vaut mieux utiliser la base de données SQLite.

Selon developer.Android.com :

Si vous avez une collection relativement petite de valeurs-clés que vous souhaitez enregistrer, vous devez utiliser les API SharedPreferences.

4
mani