大家好IAM新的Android和使用绿色DAO用于管理数据库,但IAM经常得到一个数据库中未封闭的例外,因为IAM做,在应用onTeriminate(),IAM只保持数据库的单一连接,通过了申请,但在某些情况下,当我的应用程序切换到后台并恢复数据库连接对象变得无效,我通过使用之前检查对象的零内斯处理的问题,但现在经常IAM得到异常
android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭在这里打开游标或数据库对象
请帮助我如何处理这
提前致谢
堆栈跟踪:九月一日至3日:39:18.688:E / SQLiteDatabase(3063):关闭()从未被明确要求在数据库 '/data/data/com.opera.mini.android/databases/google_analytics.db' 01- 03 09:39:18.688:E / SQLiteDatabase(3063):android.database.sqlite.DatabaseObjectNotClosedException:应用程序没有关闭在这里开了9月1日至3日的光标或数据库对象:39:18.688:E / SQLiteDatabase(3063) :在android.database.sqlite.SQLiteDatabase(SQLiteDatabase.java:1943)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:1007) 9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:986)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1051)01-03 09:39:18.688:E / SQLiteDatabase(3063):在android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:787)01-03 09:39:18.688:E / SQLiteDatabase(306 3):在android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:221)01 -03 09:39:18.688:E / SQLiteDatabase(3063):在android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:157)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在玉米.google.android.apps.analytics.PersistentHitStore.loadExistingSession(未知源)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在com.google.android.apps.analytics.PersistentHitStore(未知源)01 -03 09:39:18.688:E / SQLiteDatabase(3063):在com.google.android.apps.analytics.PersistentHitStore(未知源)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在玉米.google.android.apps.analytics.AnalyticsReceiver.onReceive(未知源)9月1日至三日: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)9月一日至3日:39:18.688:E / SQLiteDatabase(3063):在android.app.ActivityThread.access $ 1500(ActivityThread.java:123)01 -03 09:39:18.688:E / SQLiteDatabase(3063):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1197)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在机器人.os.Handler.dispatchMessage(Handler.java:99)01-03 09:39:18.688:E / SQLiteDatabase(3063):在android.os.Looper.loop(Looper.java:137)01-03 9时39分:18.688:E / SQLiteDatabase(3063):在android.app.ActivityThread.main(ActivityThread.java:4424)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在java.lang.reflect.Method中。 invokeNative(本机方法)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在java.lang.reflect.Method.invoke(Method.java:511)9月1日至3日:39:18.688:E / SQLiteDatabase (3063):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:784)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在com.android.internal.os。 ZygoteInit.mai N(ZygoteInit.java:551)9月1日至3日:39:18.688:E / SQLiteDatabase(3063):在dalvik.system.NativeStart.main(本机方法)9月1日至3日:39:18.688:E /系统(3063 ):未捕获的异常被终结九月一日至3日抛出:39:18.688:E /系统(3063):java.lang.IllegalStateException:不要有数据库的锁! 9月1日至3日:39:18.688:E /系统(3063):在android.database.sqlite.SQLiteDatabase.verifyLockOwner(SQLiteDatabase.java:2090)9月1日至3日:39:18.688:E /系统(3063):在android.database.sqlite.SQLiteDatabase $ 1.entryRemoved(SQLiteDatabase.java:2182)九月一日至3日:39:18.688:E /系统(3063):在android.database.sqlite.SQLiteDatabase $ 1.entryRemoved(SQLiteDatabase.java:2178 )9月1日至3日:39:18.688:E /系统(3063):在android.util.LruCache.trimToSize(LruCache.java:197)9月1日至3日:39:18.688:E /系统(3063):在机器人.util.LruCache.evictAll(LruCache.java:285)9月1日至三日:39:18.688:E /系统(3063):在android.database.sqlite.SQLiteDatabase.deallocCachedSqlStatements(SQLiteDatabase.java:2143)9月1日至三日:39:18.688:E /系统(3063):在android.database.sqlite.SQLiteDatabase.closeClosable(SQLiteDatabase.java:1126)9月1日至3日:39:18.688:E /系统(3063):在android.database。 sqlite.SQLiteDatabase.finalize(SQLiteDatabase.java:1914)九月1日至3日:39:18.688:E /系统(3063):在java.lang.Daemons $ FinalizerDaemon.doFinalize(Daemons.java:182 )9月1日至3日:39:18.688:E /系统(3063):在java.lang.Daemons $ FinalizerDaemon.run(Daemons.java:168)9月1日至3日:39:18.688:E /系统(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();
}