Android Sq Lite cerró la excepción

No tengo una base sólida de sincronización. Creo que este problema será corregido, cuando utilizo method.but sincronizado, cualquiera puede ayudarme a solucionar este problema. El código está abajo:

public HashMap<String, FriendInfo> getAllRecordsInList_HashMap() { MySQLiteHelper dbHelper = MySQLiteHelper.getInstance(mActivity); HashMap<String, FriendInfo> list_map = new HashMap<String, FriendInfo>(); SQLiteDatabase db = dbHelper.getReadableDatabase(); // Cursor cursor = db.rawQuery("SELECT * from " + // dbHelper.tbl_friendlist, new String[] {}); String[] cols = { dbHelper.id, dbHelper.name, dbHelper.picture, dbHelper.birthday, dbHelper.livein, dbHelper.gender, dbHelper.is_online, dbHelper.is_vip }; Cursor cursor = db.query(dbHelper.tbl_friendlist, cols, null, null, null, null, dbHelper.name); if (cursor != null && cursor.getCount() > 0) { // some code here.... } cursor.close(); return list_map; } 

Diferentes hilos pueden llamar a este método getAllRecordsInList_HashMap() .Por favor, aconsejar, cómo solucionar este problema si hago el método sincronizado, ¿se arreglará ?. Gracias por adelantado.

  java.lang.IllegalStateException: Cannot perform this operation because the connection pool has been closed. at android.database.sqlite.SQLiteConnectionPool.throwIfClosedLocked(SQLiteConnectionPool.java:962) at android.database.sqlite.SQLiteConnectionPool.waitForConnection(SQLiteConnectionPool.java:599) at android.database.sqlite.SQLiteConnectionPool.acquireConnection(SQLiteConnectionPool.java:348) at android.database.sqlite.SQLiteSession.acquireConnection(SQLiteSession.java:894) at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:834) at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62) at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143) at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:133) at com.platinumapps.friendlist.BLL_Friendlist.getAllRecordsInList_HashMap(BLL_Friendlist.java:290) at com.platinumapps.activities.Messages_Activity.addViewTOLayout(Messages_Activity.java:753) at com.platinumapps.activities.Messages_Activity.access$3(Messages_Activity.java:744) at com.platinumapps.activities.Messages_Activity$1$3.run(Messages_Activity.java:141) at android.app.Activity.runOnUiThread(Activity.java:4644) at com.platinumapps.activities.Messages_Activity$1.onReceive(Messages_Activity.java:136) at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:758) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) 

De acuerdo con Dianne Hackborn (ingeniero de framework de Android) no hay necesidad de cerrar la base de datos en un proveedor de contenido

Un proveedor de contenido se crea cuando se crea su proceso de alojamiento, y permanece durante todo el tiempo que el proceso lo hace, por lo que no hay necesidad de cerrar la base de datos que se cerrará como parte del kernel limpiando los recursos del proceso cuando el proceso es delicado.

Por lo tanto, no es necesario cerrar la base de datos. Se cerrará automáticamente cuando no sea necesario.

No debe cerrar el DB ya que se utilizará de nuevo en la próxima llamada. Así que trate de quitar el

 db.close(); 

De su código.

  • Cerrar () nunca se llamó explícitamente en base de datos incluso después de implementar close ()
  • Cómo obtener NoClassDefFoundError al intentar utilizar Proguard y SQLcipher en Android
  • SQLiteDiskIOException con el código de error 10: error de E / S de disco
  • Java.lang.IllegalArgumentException: la columna '_id' no existe
  • Causado por: android.database.sqlite.SQLiteException: No se puede actualizar la base de datos de sólo lectura de la versión 0 a 1
  • SQLite Adición de columna con valor predeterminado
  • ¿Se llama el método onUpgrade?
  • La base de datos Robolectric que accede arroja un error
  • Android SQLite nueva versión de DB con una tabla eliminada
  • Obtener el ID de un nuevo registro insertado en una base de datos de la Uri devuelto
  • Base de datos SQLite de Android con Multi Threading
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.