Android DataBase está bloqueado por otro hilo
Estoy trabajando en la base de datos sqlite android en la que no soy capaz de insertar registro en DataBase.
En el código de abrir la base de datos sólo una vez en el momento de la aplicación de lanzamiento, y he establecido allí referencia a mi variable de clase de aplicación para que pueda acceder a la base de datos de cualquier parte del código y esto funciona bien.
El problema es: puedo acceder a la base de datos, pero no puedo iniciar Transacción. No me da ninguna excepción, pero sqLiteDatabaseWrite.isDbLockedByOtherThreads()
devuelve TRUE
. Además, en logcat hay un mensaje de advertencia:
- ¿Cómo obtener todos los nombres de tablas en la base de datos Android sqlite?
- Base de datos SQLite de Android: inserción lenta
- Obtener todos los elementos alrededor de un determinado punto de la base de datos SQLite
- ¿Qué es la base de datos "-journal" SQLite en Android?
- Cómo obtener el tamaño de la base de datos sqlite actual o el tamaño del paquete en Android?
WARN / SQLiteDatabase (19006): bloqueo de base de datos no ha estado disponible durante 30 seg. El propietario actual de la cerradura es 1. Continuando a esperar en el hilo: 14
¿Alguna solución?
- Acerca de la seguridad de Sqlite en android en caso de varios procesos
- Obtención de base de datos SQLite por adb shell en cmd
- ¿Qué significa COLLATE LOCALIZED ASC?
- SQLite de Android que elimina una fila específica de la base de datos
- Android: carga el contenido de la base de datos sqlite en webview
- No se pudo recuperar datos de la base de datos a listview.
- Acceso a una base de datos .sqlite descargada determinada en el almacenamiento externo desde una aplicación de Android
- Cómo abrir android adb desde el símbolo del sistema?
Gracias por estar conmigo. En realidad resolví mi problema. Comencé una operación de la base de datos de SQLite usando sqLiteDatabase.beginTransaction()
y olvidé terminar esta transacción. Resolví el problema al finalizar la transacción. Para terminar la transacción utilicé el código siguiente:
sqLiteDatabase.setTransactionSuccessful(); sqLiteDatabase.endTransaction();
Gracias.
- Cómo agregar detalles de contacto a través de código en la lista de contactos de Android Phone ..?
- Selector de contactos, recuperación de apellido, nombre, número de teléfono