Avatar ·

Android Room: como corrigir o erro "Cannot access database on the main thread" em uma consulta SELECT simples?

Olá a todos! Sou novo no desenvolvimento Android com Kotlin e estou usando Room para banco de dados local. Tenho uma entidade User simples e um DAO com o método getAllUsers(), que retorna uma lista de todos os usuários. Chamo esse método da Activity para exibir os dados no RecyclerView. Mas o aplicativo fecha com o erro:

\n\n
java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time.
\n\n

Aqui está meu código:

\n\n
// Entity\n@Entity(tableName = "users")\ndata class User(\n    @PrimaryKey val id: Int,\n    val name: String,\n    val email: String\n)\n\n// DAO\n@Dao\ninterface UserDao {\n    @Query("SELECT * FROM users")\n    suspend fun getAllUsers(): List<User>\n}\n\n// Database