我是一名可以翻译文本的助手。
我正在尝试在Android中使用WorkManager,因为到目前为止,我一直在使用AsyncTask进行插入更新。我正在尝试在Room数据库中更新用户。我已经在Repository中创建了一个类,在后台处理过程,但我不确定这是否是正确的编码方式。此外,我有点困惑如何在userViewModel中调用方法。
以下是我的代码:
在Repository中:
在viewModel中:
也许这不是使用WorkManager的正确方式,如果有人能帮忙就感激不尽。
我正在尝试在Android中使用WorkManager,因为到目前为止,我一直在使用AsyncTask进行插入更新。我正在尝试在Room数据库中更新用户。我已经在Repository中创建了一个类,在后台处理过程,但我不确定这是否是正确的编码方式。此外,我有点困惑如何在userViewModel中调用方法。
以下是我的代码:
在Repository中:
inner class Test(ctx: Context, params: WorkerParameters) : Worker(ctx, params) {
override fun doWork(): Result {
fun updateUser(userId : Int , userName :String , userLastname: String){
userDao.updateUser(userId, userName, userLastname)
}
return Result.success()
}
}
在viewModel中:
private val workManager: WorkManager = WorkManager.getInstance()
fun updateUser(userID: Int, userName: String, userLastname: String) {
workManager.enqueue(OneTimeWorkRequest.from(Repository.Test::class.java))
}
也许这不是使用WorkManager的正确方式,如果有人能帮忙就感激不尽。
workmanger
还不支持协程。无论如何,我会更新这个答案的。 - ankuranurag2doWork
函数设置为suspend
。而且上下文没有传递。 - Marfin. F