Kotlin Coroutines在Android中的实践 (3)

Room从2.1.0版本开始提供对协程的支持. 具体就是DAO方法可以是suspend的.

@Dao interface UsersDao { @Query("SELECT * FROM users") suspend fun getUsers(): List<User> @Insert suspend fun insertUser(user: User) @Update suspend fun updateUser(user: User) @Delete suspend fun deleteUser(user: User) }

Room使用自己的dispatcher来确定查询运行在后台线程.
所以你的代码不应该使用withContext(Dispatchers.IO), 会让代码变得复杂并且查询变慢.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwfzg.html