当前位置: 首页 > 知识库问答 >
问题:

DAO何时使用android的挂起功能

沈曜灿
2023-03-14

我在这里关注Android开发者的DAO教程:

https://developer.android.com/codelabs/android-room-with-a-view-kotlin#5

他们说:
默认情况下,所有查询都必须在单独的线程上执行。
Room支持静态编程语言协程。这允许您的查询用挂起修饰符进行注释,然后从协程或另一个挂起函数调用。

Dao接口如下:

@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()
}

为什么<code>getAlphabizedWords()

共有1个答案

陈修诚
2023-03-14

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

@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()
}

您可以在Github中查看源代码。

 类似资料:
  • 我正在尝试使用PHP从HTML生成PDF。我正在运行MacOSX作为我的开发环境,尽管我希望这段代码在生产linux服务器上运行。 到目前为止,我得到了: 此代码在/tmp/tmp_PDF中生成PDF。pdf。问题是它永远不会 浏览器挂起,表示正在等待服务器。。。。 就好像shell_exec命令永远不会结束。我注意到当我从终端运行wkhtmltopdf时,它没有退出回命令行。我得到: 然后它也放

  • 我有一个使用SSL传输的activeMQ代理。我有大约10个消费者正在使用经纪人。我正在使用camel来配置我的路线。 谢谢

  • 我目前正在开发一个Firebase聊天应用程序。我下载了一个演示并尝试完成它(http://myapptemplates.com/simple-android-chat-app-tutorial-firebase-integration/) 我可以发送和接收消息,但问题是我必须退出聊天框并重新加载它才能看到新的消息。另一件事是,所有注册用户都发送和接收相同的消息,而不是只有一个收件人和发件人。我对

  • 问题内容: 我刚刚阅读了React的新功能挂钩。了解有关钩子的信息, 但我无法使用它。它给我错误。 我目前正在使用16.6.0版 终于我明白了钩子。 我导入为Fun并在app.js文件中使用 我犯的错误是我没有安装React v16.7.0-alpha,所以我使用npm安装了add react @ next react-dom @ next。 谢谢 问题答案: 编辑: 挂钩是16.8.0版的一部分

  • 我目前正在将Android 4.4(Kitkat)移植到嵌入式系统(基于Freescale I.MX6)。为了开始我的开发,我使用了一些开发套件(Wandboard、Boundary Device的BD-SL)。 在处理自定义板的电源管理时,我没有遇到暂停开发套件的问题。但是,我找不到如何将它们从睡眠中唤醒(除了电源循环它们)。唤醒系统的预期方式是在GPIO上获得中断(例如,基于Android的手