Как узнать все открытые соединения базы данных, используя зеленый DAO ..?

Привет всем, я новичок в Android и использую зеленый DAO для управления базой данных, но я часто получаю базу данных не закрытое исключение, как я делаю это в Application onTeriminate (), я поддерживаю только одно соединение с базой данных через приложение, но в некоторых случаях, когда мое приложение переходит в фоновый режим и возобновляет работу базы данных. Объект соединения становится пустым, я решил проблему, проверив пустоту объекта перед использованием, но теперь я часто получаю исключение, которое

android.database.sqlite.DatabaseObjectNotClosedException: приложение не закрывало курсор или объект базы данных, который был открыт здесь

пожалуйста, помогите мне, как справиться с этим

заранее спасибо

Трассировка стека: 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): close () никогда не вызывался явно для базы данных '/data/data/com.opera.mini.android/databases/google_analytics.db» 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): android.database.sqlite.DatabaseObjectNotClosedException: приложение не закрывало курсор или объект базы данных, который был открыт здесь 01-03 09: 39: 18.688: E / SQLiteDatabase ( 3063): в android.database.sqlite.SQLiteDatabase. (SQLiteDatabase.java:1943) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java: 1007) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.database.sqlite.SQLiteDatabase.openDatabase (SQLiteDatabase.java:986) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063) : at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase (SQLiteDatabase.java:1051) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): at android.app.ContextImpl.openOrCreateDatabase (ContextImpl.java:787) 01 -03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.content.ContextWrapper.openOrCreateDatabase (ContextWrapper.java:221) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.content .ContextWrapper.openOrCrea teDatabase (ContextWrapper.java:221) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.database.sqlite.SQLiteOpenHelper.getWritableDatabase (SQLiteOpenHelper.java:157) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com.google.android.apps.analytics.PersistentHitStore.loadExistingSession (неизвестный источник) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com.google.android.apps. analytics.PersistentHitStore. (Неизвестный источник) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): at com.google.android.apps.analytics.PersistentHitStore. (Неизвестный источник) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com.google.android.apps.analytics.AnalyticsReceiver.onReceive (неизвестный источник) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com.opera.mini.android. OpMiniInstallReferrerReceiver.onReceive (Источник: 15) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.app.ActivityThread.handleReceiver (ActivityThread.java:2119) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на android.app.ActivityThread.access $ 1500 (ActivityThre ad.java:123) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1197) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.os.Handler.dispatchMessage (Handler.java:99) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в android.os.Looper.loop (Looper.java:137 ) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на android.app.ActivityThread.main (ActivityThread.java:4424) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на java .lang.reflect.Method.invokeNative (собственный метод) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в java.lang.reflect.Method.invoke (Method.java:511) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:784) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): на com .android.internal.os.ZygoteInit.main (ZygoteInit.java:551) 01-03 09: 39: 18.688: E / SQLiteDatabase (3063): в dalvik.system.NativeStart.main (собственный метод) 01-03 09: 39: 18.688: E / System (3063): необученное исключение t финализатор 01-03 09: 39: 18.688: E / System (3063): java.lang.IllegalStateException: Don 'не может быть блокировка базы данных! 01-03 09: 39: 18.688: E / System (3063): в android.database.sqlite.SQLiteDatabase.verifyLockOwner (SQLiteDatabase.java:2090) 01-03 09: 39: 18.688: E / System (3063): в android.database.sqlite.SQLiteDatabase $ 1.entryRemoved (SQLiteDatabase.java:2182) 01-03 09: 39: 18.688: E / System (3063): в android.database.sqlite.SQLiteDatabase $ 1.entryRemoved (SQLiteDatabase.java:2178 ) 01-03 09: 39: 18.688: E / System (3063): на android.util.LruCache.trimToSize (LruCache.java:197) 01-03 09: 39: 18.688: E / System (3063): на android .util.LruCache.evictAll (LruCache.java:285) 01-03 09: 39: 18.688: E / System (3063): в android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements (SQLiteDatabase.java:2143) 01-03 09 : 39: 18.688: E / System (3063): в android.database.sqlite.SQLiteDatabase.closeClosable (SQLiteDatabase.java:1126) 01-03 09: 39: 18.688: E / System (3063): в android.database. sqlite.SQLiteDatabase.finalize (SQLiteDatabase.java:1914) 01-03 09: 39: 18.688: E / System (3063): в java.lang.Daemons $ FinalizerDaemon.doFinalize (Daemons.java:182 ) 01-03 09: 39: 18.688: E / System (3063): на java.lang. Демоны $ FinalizerDaemon.run (Daemons.java:168) 01-03 09: 39: 18.688: E / System (3063): на java.lang.Thread.run (Thread.java:856)

Код для закрытия соединения:

@Override
public void onTerminate() {
    // TODO Auto-generated method stub
    super.onTerminate();
    snail_mail_db.close();
      snail_mail_database_helper_obj.close();

}

Ответы на вопрос(2)

Ваш ответ на вопрос