如何从广播接收器内的房间数据库中删除数据



在我的应用程序中,我有一个发送通知的广播接收器。我想在发送通知后从数据库中删除特定的对象。在我的活动中,我使用viewModel实例来删除数据,但不能在广播接收器或工作管理器中创建viewModel实例。在使用房间数据库时,有什么可以做的事情来删除广播接收器中的数据吗。

这就是我在活动中创建viewModel实例的方式:

private val taskViewModel: TaskViewModel by viewModels {
TaskViewModelFactory((application as TaskApplication).repository)
}

当我试图在接收器或workManager中创建类似的viewModel实例时,我遇到了语法错误。

尝试使用Thread without ViewModel 从DAO中删除对象

class Receiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
val id = intent!!.getIntExtra("id_key", 0)
Thread {
AppDatabase.getInstance(context).appDao().deleteObject(id)
}.start()
}
}

最新更新