Ошибка "java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time"

Ошибка "java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time" встречается потому, что если делать запросы в базу в основном потоке, можно “повесить” основной интерфейс.

Запросы в базу лучше делать асинхронно, к примеру используя lifecycleScope. 

В build.gradle добавить androidx.lifecycle:lifecycle-runtime:

implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.5.1"

В классе, где нужно делать запросы в базу, обернуть запрос  в “lifecycleScope.launch(Dispatchers.IO) {}”:

lifecycleScope.launch(Dispatchers.IO) {
// запросы в базу, к примеру:
myclassDao.getAll()
}

Комментарии

Комментариев пока нет, вы можете оставить свой: