选择单列值作为实时数据

问题描述 投票:0回答:1

如标题所示,我正在尝试从数据库中选择单个列作为实时数据。但是我收到以下错误消息。

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>
}

关于我在做什么错的任何线索?

android kotlin android-room android-livedata
1个回答
0
投票

暂停和LiveData无法一起使用。下面的作品。

@Dao
interface LocationDao {
...
    @Query(speedSql)
    fun speed(runId: Long): LiveData<Float>
}
© www.soinside.com 2019 - 2024. All rights reserved.