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