有关使用LiveData的问题。
使用LiveData,您可以免费获得类似的东西:
listener/subscriber support;
lifeCycle awareness/management;
cross thread marshaling, etc.
几乎在任何情况下,我们都可以使用liveData作为在任何数据存储库到ui表示之间进行传递的机制。
但是,为了使用它,它必须引入一些所需的对象,就像您自己实现这些功能一样,必须要实现一些支持类。
想知道开销可能是多少/多少?难道只是被忽略了吗?
类似于搜索的情况,它可以使用LiveData,用户界面从存储库询问结果并观察liveData,存储库发布结果,并通知UI。
在没有liveData的情况下也可以完成同样的操作(即运行协程暂停函数以直接从存储库中获取)。
想知道LiveData是否会带来一些不必要的物体,或者称重它们带来的好处。
看到some post,但未找到何时应使用LiveData或不使用LiveData的官方指南,或者LiveData不适合此类情况。也许根本就没有开销?
有什么建议/想法吗?
答案 0 :(得分:0)
使用MVVM(模型视图ViewModel)时,有两个主要选项可将数据从ViewModel发送到视图(更新视图)。
如果您不想使XML布局复杂化,我们通常使用LiveData,它基于 Observer Design Pattern 。 使用Kotlin Coroutines不会带来LiveData的全功能包。 使用LiveData,您可以从另一个线程到主线程获取postValue, 您可以从视图内部观察更改,然后...
PLUS:Kotlin协程用于多线程,与LiveData(用于保存数据的组件)无关。