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
- Android getDefaultSharedPreferences
- Borrar el archivo SharedPreferences
- Android - ¿Cómo obtengo las preferencias compartidas de otra actividad?
- onSharedPreferenceChanged no se disparó todo el tiempo
- Android Almacenamiento interno VS Preferencias compartidas
- Actualizaciones de Android en Play Store
- SharedPreferences strage. getSharedPreferences no funciona
- Alcance de SharedPreferences
- Problema al guardar las preferencias compartidas en Android
- Cómo mostrar sólo una vez Iniciar sesión y luego después de iniciar la aplicación directamente en android
- En preferencias compartidas, cómo almacenar array de cadena en la aplicación android
- Android: Cómo obtener el tiempo de un TimePicker cuando se escribe en
- La mejor opción para almacenar nombre de usuario y contraseña en la aplicación Android
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.
- Cómo configurar proguard para eliminar SOLAMENTE llamadas de registro de android
- Biblioteca de soporte de Android Snackbar con longitud indefinida