gpt4 book ai didi

android - DAO什么时候使用挂起函数android

转载 作者:行者123 更新时间:2023-12-04 23:58:42 25 4
gpt4 key购买 nike

我在这里关注有关 Android 开发人员的 DAO 教程:
https://developer.android.com/codelabs/android-room-with-a-view-kotlin#5
他们说:
默认情况下,所有查询都必须在单独的线程上执行。
Room 支持 Kotlin 协程。这允许您的查询使用挂起修饰符进行注释,然后从协程或另一个挂起函数中调用。
道界面如下:

@Dao
interface WordDao {

@Query("SELECT * FROM word_table ORDER BY word ASC")
fun getAlphabetizedWords(): List<Word>

@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(word: Word)

@Query("DELETE FROM word_table")
suspend fun deleteAll()
}
为什么 getAlphabetizedWords()不定义为挂起函数?

最佳答案

在协程中,流是一种可以顺序发出多个值的类型,而不是只返回单个值的挂起函数。例如,您可以使用流从数据库接收实时更新。

@Dao
interface WordDao {

// The flow always holds/caches latest version of data. Notifies its observers when the
// data has changed.
@Query("SELECT * FROM word_table ORDER BY word ASC")
fun getAlphabetizedWords(): Flow<List<Word>>

@Insert(onConflict = OnConflictStrategy.IGNORE)
suspend fun insert(word: Word)

@Query("DELETE FROM word_table")
suspend fun deleteAll()
}
你可以看到 source code在 Github。

关于android - DAO什么时候使用挂起函数android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70801306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com