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
- Mantener más de un archivo de preferencias compartidas en android
- Escribir la clave pública / privada en SharedPreferences y usarla
- Android Studio - Explorador de archivos de Android Device Monitor no funciona
- Java.lang.String no se puede convertir en com.example.expandablelistview.NewsItem
- ¿Cómo obtengo las preferencias para trabajar en Android?
- Cómo pasar el contexto de la aplicación dentro Singleton y SharedPreferences Clases
- ¿Cómo puedo compartir un archivo SharedPreferences a través de dos aplicaciones de Android diferentes?
- Inicie la aplicación de Android con actividad específica
- Android: guarda Object to SharedPreferences y lo consigue en cualquier lugar de la aplicación.
- PreferenceManager.setDefaultValues readAgain parámetro y nuevas preferencias
- ¿Qué pasará con SharedPreferences al actualizar una aplicación de Android?
- Contexto de la aplicación SharedPreferences vs contexto de la actividad
- Comportamiento SharedPreferences en Actualizar / Desinstalar
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