android - 选择单列值作为 livedata
问题描述
正如标题所示,我正在尝试从我的数据库中选择一个列作为 livedata。但我收到以下错误消息。
error: Not sure how to convert a Cursor to this method's return type (androidx.lifecycle.LiveData<java.lang.Float>)
我正在跟踪手机位置并将位置对象插入到名为 LocationEntity 的表中。
我的实体如下所示
data class LocationEntity(
...
val speed: Float,
...
@PrimaryKey(autoGenerate = true) val id: Long = 0
)
我的 DAO 如下所示
private const val ACCURACY_THRESHOLD = 50
private const val speedSql = """
SELECT speed
FROM LocationEntity
WHERE runId = :runId AND accuracy < $ACCURACY_THRESHOLD
ORDER BY dateTime
DESC LIMIT 1
"""
@Dao
interface LocationDao {
...
@Query(speedSql)
suspend fun speed(runId: Long): LiveData<Float>
}
关于我做错了什么的任何线索?
解决方案
暂停和 LiveData 不能一起工作。下面的作品。
@Dao
interface LocationDao {
...
@Query(speedSql)
fun speed(runId: Long): LiveData<Float>
}
推荐阅读
- python - Odoo:在 tmp 文件夹中生成 HTML 文件
- api - VueJS:从 API 获取图像路径并显示动态数据和图片
- r - 在特定时间戳之前和之后保留记录
- forms - 如何以一种形式进行 2 次搜索(vuetify)?
- javascript - 有没有办法将 Object 中键的存在依赖于外部值?
- signals - ModemManager:信号/小区信息报告功能
- android - 按服务数据 UUID 的 BLE 扫描过滤器
- python-3.x - 按顺序排序+熊猫中的一个条件
- javascript - TypeError: $ is not a function in selenium java during html5 dragdrop
- firebase - 如何将数据从 Pub/Sub 发送到 Google Cloud Firestore?