En Android uso el siguiente método para ver si existe la base de datos sqlite y si puedo abrirla y usarla.En Android, compruebe si la base de datos sqlite existe falla de vez en cuando
Si no pasa esta prueba, copio el archivo de base de datos de los activos (esto solo debería ocurrir una vez, cuando el usuario inicia la aplicación por primera vez).
/*
* Check if the database already exist to avoid re-copying the file each time you open the application.
* @return true if it exists, false if it doesn't
*/
private boolean checkDataBase() {
SQLiteDatabase checkDB = null;
try {
String myPath = DB_PATH + DB_NAME;
checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
} catch(SQLiteException e) {
//database does't exist yet.
}
if(checkDB != null){
checkDB.close();
}
return checkDB != null ? true : false;
}
El problema es que puedo informes de los usuarios diciendo que sus datos han sido borrados y en la investigación de lo que puedo ver que la base de datos se reemplaza con la base de datos de los activos. Por lo tanto, por alguna razón, incluso si el usuario ya tiene un archivo de base de datos, a veces SQLiteDatabase.openDatabase() arroja un error. No he podido reproducir el problema yo mismo, pero parece que ocurre para algunos usuarios.
¿Alguien tiene una idea de lo que podría ser el problema aquí? ¿Hay una mejor manera de hacer esta prueba?
Por favor, ayuda con este http://stackoverflow.com/questions/20728808/android-reading-stored-sqlite-database – gandharv09