Ric*_*ata 11 android android-architecture-components
我一直在测试Livedata和AAC.
LiveData和ObservableField之间的核心区别是什么?
哪一个是最好的,何时应该使用另一个?
Tom*_*kis 16
核心区别在于ObservableField<T>不能识别生命周期,因此不能进行任何自动订阅管理.虽然LiveData<T>具有生命周期意识,但在生命周期中解决了许多令人头疼的订阅管理问题Activity/Fragment.
没有一种方法可以回答什么是最好用的.这是个人选择,但我建议LiveData<T>只是为了节省一些时间,避免潜在的崩溃.
无论LiveData和Observable可交替使用。LiveData具有生命周期意识,因此只会通知“活动”的可观察对象。
引用https://developer.android.com/topic/libraries/data-binding/architecture#livedata 上的官方文档
与实现 Observable 的对象(例如 observable 字段)不同,LiveData 对象知道订阅数据更改的观察者的生命周期。这些知识带来了许多好处,这些好处在使用 LiveData 的优势中进行了解释。在 Android Studio 3.1 及更高版本中,您可以将数据绑定代码中的可观察字段替换为 LiveData 对象。
如前所述,两者都可互换用于 UI 绑定。LiveData是一种快速方法,但如果您想对绑定进行更多控制,则Obserable是一种方法。
引用https://developer.android.com/topic/libraries/data-binding/architecture#observable-viewmodel 上的官方文档
在某些情况下,您可能更喜欢使用实现 Observable 接口的 ViewModel 组件而不是使用 LiveData 对象,即使您失去了 LiveData 的生命周期管理功能。使用实现 Observable 的 ViewModel 组件可以让您更好地控制应用程序中的绑定适配器。例如,此模式使您可以在数据更改时更好地控制通知,它还允许您指定自定义方法来设置双向数据绑定中的属性值。
我们可以选择自定义绑定以防万一,Observable这在某些情况下可能会有所帮助。
个人喜好是搭配LiveData。如果在绑定上需要一些自定义或更多控制,请选择Obervable
| 归档时间: |
|
| 查看次数: |
3328 次 |
| 最近记录: |