我正在向我的 Room db 写一条消息,然后在成功时将其发送到服务器我更新数据库中的消息。
当我从 Worker (WorkManager) 尝试此操作时,即使消息被写入数据库,保存消息的 LiveData 也不会更新。
小例子(插入不会更新 LiveData,但当我重新启动应用程序时会显示消息):
override fun doWork(): Result {
appDatabase = appDatabase(applicationContext)
val messageId = inputData.getString("messageId", "") ?: ""
val message = appDatabase.messageDao().getMessage(messageId)
appDatabase.messageDao().insertMessage(Message(message.conversationId, "XYZ 234234234234", "test", "test", SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.GERMANY).format(Date()), false))
return Result.SUCCESS
}
在 Worker 之外,一切正常。