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)
- Inspeccionar la base de datos android de sql desde Eclipse
- Consultando el valor máximo de una columna en SQLite Para Android
- ¿Cómo pasar el valor de la cadena separada por coma en la consulta SQL?
- Acceda a la base de datos en una clase que no sea de actividad
- Devolver datos de AsyncTask Android
- Actualizar consulta sqlite - Android
- Implementación correcta de la base de datos Android asíncrona de SQLite
- Abrir y editar archivos PDF en la aplicación de Android con API
- Cómo lograr una relación de "herencia" en la base de datos SQLite en Android
- ¿Qué es un buen tutorial para usar ORMLite con SQLite y Android
- Net.sqlcipher.database.SQLiteException: no es un error:
- Cómo convertir MDB a SQLite en Android
- Android: insertar registro sqlite con la columna AUTOINCREMENT
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.