2011-12-15 11 views
24

Estoy almacenando cadenas en las preferencias compartidas, pero no pude encontrar la longitud máxima de la cadena que puedo almacenar. ¿Conoces este valor?Preferencias compartidas - longitud máxima de un solo valor

Gracias

Waypoint

+0

Si es realmente grande, como más de 10 kilobytes, es posible que desee guardarlo de otra manera, tal vez un archivo en el disco. – Fred

Respuesta

53

Por Romain Guy de la cuestión Asked Here,

Sea cual sea la longitud máxima de una cadena Java es. Así que algo así como Integer.MAX_VALUE chars.

Supongo que SharedPreferene es un archivo XML almacenado con One Tag si solo almacena One Pair/Object. lo que no hay límite para escribir en cadena que si usted piensa como usted está escribiendo en un archivo .. (Theoratically)

Pero En realidad lo que sucede es que, mientras está asignando valor a SharedPreference usando put/get función en ese momento Valor de lectura/escritura en String Objeto ..so que el límite se convierte en almacenar valor al mismo tiempo igual al Límite de tamaño del String Object of Java.

Así, mientras que escribe el código: Límite de SharedPreference Cadena Tamaño = String de Java Objeto Límite de tamaño (prácticamente)

+1

'Integer.MAX_VALUE' es 2147483647. – Fred

14

preferencia compartido se almacena en /data/data/[package_name]/shared_prefs/[app name].xml, creo que hay hay límite según la arquitectura androide.

0

Cuando tratando de salvar la cadena de longitud como máximo en los SharedPreferences en mi dispositivo, que arrojan una memoria Excepción cuando los datos de SharedPreferences exceden 1.42 MB.

Así que si tiene más de 1,42 MB de tamaño de datos para guardar es mejor guardar la base de datos SQLite.

Según developer.android. "Si tiene una colección relativamente pequeña de pares clave-valor que desea guardar, debe usar las API de preferencias compartidas".

Cuestiones relacionadas