AllodalstateException: не может выполнить эту операцию, потому что пул соединений был закрыт (проблема базы данных DAO)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 AllodalstateException: не может выполнить эту операцию, потому что пул соединений был закрыт (проблема базы данных DAO)

Сообщение Anonymous »

Я сталкиваюсь с фатальным исключением: java.lang.illegalStateException в моем приложении Android при доступе к базе данных комнаты DAO после того, как пул соединений базы данных был закрыт. < /p>
В моей базе данных I иметь функцию приостановки для очистки базы данных. < /p>

suspend fun formatAndCleanDatabase(context: Context){
clearAllData()
close()
context.deleteDatabase("app_database")
clearDatabaseInstance()
}
< /code>
Когда я очищаю таблицы и закрывающую базу данных, поток Попробуйте получить данные после закрытия, что я хочу, как это предотвратить. < /p>
@Dao
interface UserProfileDao {
@Query("SELECT * FROM user_profile WHERE user_id = :userId")
fun getProfileFlow(userId: String): Flow
}

< /code>
Ошибка происходит после очистки базы данных. И более ранний поток, уже выдвигаемый моделью просмотра, перед очисткой базы данных - это попробовать данные из базы данных с использованием потока в методе DAO после закрытия базы данных и недействительной. Вот след у стека: < /p>
Fatal Exception: java.lang.IllegalStateException
Cannot perform this operation because the connection pool has been closed.
android.database.sqlite.SQLiteConnectionPool.throwIfClosedLocked (SQLiteConnectionPool.java:1078)

androidx.room.driver.SupportSQLiteStatement$SupportAndroidSQLiteStatement.step (SupportSQLiteStatement.android.kt:183)
com.app.database.daos.profile.UserProfileDao_Impl.getProfileFlow$lambda$2 (UserProfileDao_Impl.kt:148)


Подробнее здесь: https://stackoverflow.com/questions/794 ... ction-pool
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»