Especificar el tamaño de sqlite db máximo para mi aplicación. Cómo manejar db completa excepción
Me preguntaron en una entrevista cómo podemos establecer el tamaño máximo de sqlite db para nuestra aplicación para Android. ¿Y cómo podemos manejar cuando se alcanza el tamaño máximo?
EDIT : La respuesta de Marina Lynn a continuación parece aceptable para esta pregunta. Pero ¿Hay algún tipo de oyentes que se activan cuando el tamaño de db alcanza cerca del límite que hemos especificado? (O algo como esto)
- ¿Cómo evitar la inserción de duplicados en la base de datos SQLite?
- La columna _id no existe
- SQLite incapaz de abrir el archivo de base de datos (código 14) en la consulta "SELECT" frecuente
- Cómo agregar la cláusula de límite a manageQuery en android
- SQLite de Android que elimina una fila específica de la base de datos
- Integración ormlite-4.9 con sqlcipher-2.08
- Contactos de Android: Colocación / clasificación local incorrecta
- La base de datos SQLite de Android se corrompe
- SQLite por qué copiamos db en carpeta de activos
- Android / ORMLite Insertar fila con ID
- Problemas en la creación de varias tablas en sqlite
- Es posible copia de seguridad y restaurar un archivo de base de datos en android? Dispositivos no root
- Encriptación y bloqueo de bases de datos Android
Primero, para establecer el tamaño máximo de la base de datos utilice .setMaximumSize()
como se mencionó en la respuesta anterior.
Segundo, Android lanza SQLiteFullException
si el archivo de base de datos crece más que el número máximo de páginas * tamaño de página. SQLiteFullException
es una SQLiteFullException
RuntimeException
. Si desea manejarlo y enviar una respuesta relevante, hará algo como:
try { getContentResolver().update(myEntity.CONTENT_URI, values, where, null); } catch (SQLiteFullException e) { Log.w(TAG, "Exception when updating ...", e); }
Aunque no hay límite en el tamaño de la base de datos excepto en el almacenamiento disponible, puede establecer el tamaño máximo que creará la base de datos SQLiteDatabase.setMaximumSize()
. Si usted alcanza el límite usted tiene que encoger su base de datos. O puede mover su base de datos desde la memoria interna al almacenamiento externo posiblemente con más espacio libre disponible y aumentar el tamaño máximo de la base de datos. Pero las bases de datos pesadas conducen a la mala experiencia del usuario así que la segunda opción considera teórica. Recuerde que estamos en un entorno móvil y no en un servidor de base de datos dedicado.