Preferencias compartidas "límite"

Sé que la pregunta similar a ésta se ha pedido numerosas veces, y el practicar surf a través de SO encontré parcialmente una respuesta, pero no completa, y los documentos del androide realmente no ayudan. Obviamente sé cómo funcionan y han utilizado preferencias compartidas muchas veces antes, pero me pregunto en qué punto (cuántos) es demasiado, he leído a la gente tenía ~ 100KBS almacenado sin ningún problema. Larga historia corta – ¿Alguien realmente tuvo problemas con demasiados datos almacenados en las preferencias compartidas y cuál fue el problema, se eliminan los datos o?

** esto es sólo una cuestión por curiosidad, ya tengo mis grandes valores almacenados en el DB de SQL, sólo me preguntaba qué sería y si habría algún problema si alguien por alguna razón almacenado todo en las preferencias compartidas

Dado que SharedPreferences se almacenan en un archivo XML y, por lo tanto, carece del soporte de transacciones fuertes de SQLite, no recomendaría almacenar "100KBS" en SharedPreferences .

Dicho esto, el límite de tamaño más bajo que conozco será la cantidad de espacio de montón libre, ya que SharedPreferences lee el contenido de todo el archivo XML en la memoria.

De la lectura de su pregunta, creo que no debería usar SharedPreferences, porque (a) están destinados a almacenar cantidades mucho menores de datos (de ahí el uso de XML), y (b) hay muchas alternativas simples.

La única cosa 'especial' sobre SharedPreferences es la integración con la actividad de preferencias para mostrar sus preferencias al usuario, y que probablemente no sea aplicable en su caso en función de la cantidad que planea almacenar. (Oh, también el SharePreferences maneja problemas de concurrencia para usted.)

Puede usar la serialización de Java para almacenar las clases de preferencia en archivos binarios. Éstos serían dramáticamente más pequeños entonces PreferenceFile comparable y pueden ser pasados ​​fácilmente con GZIPInputStream para hacerlo más pequeño (o CipherInputStream) cifrarlo. He encontrado esta alternativa para ser una manera poderosa, simple, y cruz-plataforma de almacenar datos de la aplicación donde la energía de SQLite no es necesaria.

(Lo siento, esto no es una respuesta directa.)

Existen limitaciones de los datos de SharedPreference. En mi caso lanzar una excepción de memoria cuando SharedPreference datos cruzar 1428.51-kb.

Así que es mejor utilizar la base de datos SQLite cuando se requieren grandes datos para almacenar.

  • ¿Restablecer SharedPreferences?
  • Guardar paquete con SharedPreferences
  • ¿Puedo cambiar el nombre de archivo de Preferencias?
  • ¿Es buena idea usar las preferencias compartidas de Android para almacenar grandes cantidades de datos?
  • ¿La reinstalación de la aplicación suprime SQLiteDatabase o SharedPreferences?
  • MODE_PRIVATE en error de preferencias compartidas
  • Cuando una aplicación se mueve forzadamente a SD-Card, ¿dónde van SharedPreferences?
  • Primera vez que se muestra Solución de actividad
  • Android SharedPreferences Conjunto de cadenas: algunos elementos se quitan después de reiniciar la aplicación
  • Obtención de valores de índices o índices desde una preferencia de lista
  • Cómo iterar a través de todos los objetos Bundle
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.