我是Kotlin和Android开发的新手,我对一些事情感到困惑.来自NodeJS,我了解了一点关于J.C.的概念.但我不知道它在Kotlin中是如何运作的.
所以我有这个数据类:
@Entity(tableName = "counters")
data class Counter(
@PrimaryKey(autoGenerate = true) var id: Int = 0,
var name: String,
)
我做了这把刀
@Dao
interface CounterDao {
@Query("SELECT * FROM counters")
suspend fun getAllCounters(): List<Counter>
@Insert
suspend fun insertCounter(counter: Counter): Int
@Update
suspend fun updateCounter(counter: Counter)
@Delete
suspend fun deleteCounter(counter: Counter)
}
我也做了这项服务
class CounterService(context: Context) {
private val database = DatabaseProvider.provideDatabase(context)
private val counterDao = database.counterDao
suspend fun getAllCounters(): List<Counter> {
return counterDao.getAllCounters()
}
}
我已经成功地添加、删除、更新内容,并使用这个变量在我的viewModel类中观察了这些内容的状态.
private var counters: SnapshotStateList<Counter> = mutableStateListOf()
现在我想集成到RoomDatabase
和当前视图模型.那么,我如何运行getAllCounters()
并在加载时将流传输到counters
变量?或者是否有其他方法从本地存储传输数据?