问题描述
我有一个非常简单的过程来从协程内的数据库中删除几个项目,如下所示:
//Removes item from the folder (folderId)
val removeItems = Job()
val coroutinescope = Coroutinescope(removeItems + dispatchers.IO)
coroutinescope.launch {
try {
MyDatabase.getInstance(application).withTransaction {
Ids.forEach {
database.removeItemFromFolderItem(folderId!!,it)
}
}
} catch (e: Exception) {
//_response.value = "Failure: ${e.message}"
}
}
这里是 removeItemFromFolderItem 的 DAO 函数:
@Query("DELETE FROM folders_items_table WHERE folder_name = :folder AND item_id = :item")
suspend fun removeItemFromFolderItem(folder: String,item: String)
出于某种原因,“withTransaction{}”中的块没有被执行。我还通过使用非挂起 DAO 函数尝试了“inTransaction”,但得到了相同的结果,该块没有被执行。我猜这是 getInstance() 的“上下文”相关问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)