Как мы можем восстановить ошибку закрытия Greendao DB?
Когда мы можем создать приложение greendao У нас не было метода по умолчанию для закрытия базы данных greendao. Итак, как мы можем закрыть базу данных в классе Application
потому что мы добавляем ниже код класса приложения
статический класс YourAsyncTask расширяет AsyncTask {
@Override
protected String doInBackground(Void... unused) {
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(mContext, ENCRYPTED ? "otp-db-encrypted" : "otp-db");
Database db = ENCRYPTED ? helper.getEncryptedWritableDb("super-secret") : helper.getWritableDb();
daoSession = new DaoMaster(db).newSession();
return "";
}
}
И мы можем использовать объект daoSession для всего приложения, как мы можем получить решение для ошибки ниже
Завершение курсора, который не был деактивирован или закрыт. database = /data/user/0/com.onetouchprotect/databases/google_app_measurement_local.db, table = null, query = select count(1) из сообщений android.database.sqlite.DatabaseObjectNotClosedException: приложение не закрывало курсор или объект базы данных, которые был открыт здесь на android.database.sqlite.SQLiteCursor.(SQLiteCursor.java:98) на android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:50) на android.database.sqlite.SQLiteDatabase.rawQueryWithFact:1618) на android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1557) на com.google.android.gms.internal.zzatg.zza(неизвестный источник) на com.google.android.gms.internal.zzatg..zza (неизвестный источник) на com.google.android.gms.internal.zzatw.zzc(неизвестный источник) на com.google.android.gms.internal.zzatu.zzb(неизвестный источник) на com.google.android.gms.internal.zzatu.zza(неизвестный источник) на com.google.android.gms.internal.zzatu$4.run(неизвестный источник) на java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) на java.util.concurrent.FutureTask.run(FutureTask.java:237) на com.google.android.gms.internal.zzato$zzd.run(неизвестный источник)
1 ответ
Желательно иметь отдельный класс, который отвечает за предоставление вам переменной сеанса. Руководство с DaoExample в файле App.java