SingleLiveEvent实际上是Android体系结构组件库的一部分吗?

时间:2018-08-10 07:25:17

标签: android android-architecture-components android-livedata mutablelivedata

我一直在使用hereSingleLiveData类。我的问题是:

  1. SingleLiveData实际上是Android体系结构组件的一部分吗?

  2. 使用它是个好主意吗?

3 个答案:

答案 0 :(得分:5)

看着Live data and its Parent/Children inheritance,没有SingleLiveData之类的东西。阅读@Raghu提供的链接,我发现声明:

  

为示例创建了SingleLiveEvent类,作为适用于该特定方案的解决方案。这是一个LiveData,只会发送一次更新。

所以回答您的问题:

  

SingleLiveData实际上是Android体系结构组件的一部分吗?

不,不是!

  

使用它是个好主意吗?

这取决于许多因素。由于我没有使用过,所以我会给出大致的想法。可能无法保证使用在演示应用程序中找到的类或其他方式进行更新或错误修复。因此,如果您对课程有很好的理解,可以修复可能会发现的任何错误,并且适合您的需要,请使用它。

但是一般来说,如果我能找到维护得当并且可以完成相同工作的东西,我会避免这样做。

由于浏览了这篇文章后,我得到了他正在尝试建立某种观察者模式的印象,所以我建议您检查一下rxjava

答案 1 :(得分:2)

  

SingleLiveEvent实际上是Android体系结构组件库的一部分吗?

否,它不会是:https://issuetracker.google.com/issues/122413110。 基本上,官方的回答是“是的,常规的实时数据还不够,因此我们在示例中进行了介绍,但是它太笨拙,无法在库中使用。”

答案 2 :(得分:0)

我在单个UI事件中使用ObservableField,但需要一些技巧才能与Fragments配合使用来自动订阅/取消订阅。