性能:从数据库和内存更新Livedata

时间:2018-07-03 15:19:50

标签: android android-livedata

https://nd4j.org/doc/org/nd4j/linalg/dataset/ExistingMiniBatchDataSetIterator.html -后端更新数据库
-UI交互更新数据库
-数据库更新UI(通过ViewModel)

如果我将ViewModel设置为侦听数据库(房间)状态以更新UI,那么我发现异步更新数据库存在延迟。

一个简单的示例:每次单击按钮时,我想将布尔状态更新(切换)为true / false。
由于我必须异步更新数据库并允许数据库更新触发实时数据来刷新UI,因此在单击按钮到UI更新之间存在延迟。

如果我依靠当前状态(来自数据库)来执行其他一些任务(因为当前数据库状态暂时不是最新状态),它将引入更多错误

enter image description here -后端更新内存以及数据库
-UI交互内存以及数据库
-初始应用启动会将数据从数据库加载到内存中
-内存更新用户界面(通过ViewModel)

为解决此问题,我引入了一个类来存储当前状态,并让ViewModel侦听该类(而不是侦听数据库)。
每当发生更改时,我都会更新类(内存)以及数据库以进行长期备份。
这样,我可以提高UI更新性能,并消除两个或多个并发任务之间读取的错误状态。

我很好奇是否可以做我正在做的事情。
如果从数据库进行更新会导致UI更新延迟,那么Google的教程为什么不建议这样做呢?
没有人建议做我正在做的事情,所以我很想知道我是否缺少某些东西。 (使其变得比需要的复杂)。

0 个答案:

没有答案