我是靠谱客的博主 稳重世界,最近开发中收集的这篇文章主要介绍Android Jetpack-ViewModel、LiveData 使用注意事项,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ViewModel

维持对象在给定组件(Fragment/Actiivity)的生命周期范围中, 直到组件 destroy 时,才销毁 ViewModel 实例。
内部可以声明创建 LiveData的实例变量。

LiveData 是一个可观察内部数据变化的对象。可以简单使用其实现类 MutableLiveData。

内部有方法:
postValue 可以从异步线程中,将数据设置 data 中
setValue 从主线中,设置数据到 data 中
observe(LifecycleOwner owner, Observer observer) ; 默认support 包中的 Fragment/Activity 是实现了LifecycleOwner 的。新的 androidx 包中的也是实现了的。
注册观察者,并指定 lifecycle 的所有者
removeObserver(Observer observer); 删除指定观察者
removeObservers(LifecycleOwner owner); 删除所有观察者

LiveData 的特征:

  1. post/setValue这两个方法,每次都会替换成新值,即会持有最后一次的值。
    如果网络断开,请求新值,这时还是会返回 上次的值。即当前没有新的值时,就应该 post/setValue(null); 前台获取时可以判断知道没有取得新值
  2. 关于 Observer:数据变化后,相应 owner 的所有观察者都将处理变化事件。那么在使用时就要注意,是否需要每次向 observe(owner, observer)中 new Observer(); 观察者的onChanged()执行完成后,是否要 removeObserver();

最后

以上就是稳重世界为你收集整理的Android Jetpack-ViewModel、LiveData 使用注意事项的全部内容,希望文章能够帮你解决Android Jetpack-ViewModel、LiveData 使用注意事项所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部