首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LiveData的前世今生

    在一个List/Detail模式中,这里是列表的ViewModel。...用户点击按钮,于是跳转了Detail界面 用户按下返回键,回到列表界面中去 观察者在Activity处于Pause的堆栈中时,会变成不活动状态,返回时,会再次成为活动状态 但此时,观察的值仍然是True...例如:一个值可以在没有观察者活动的情况下被设置,所以新的观察者会直接取代它。另外,从不同的线程设置值可能会导致竞赛条件,只产生一个对观察者的调用。...确保你的用户界面与你的数据状态相匹配:LiveData遵循观察者模式,当生命周期状态改变时,LiveData会通知观察者对象。你可以整合你的代码来更新这些观察者对象中的UI。...不再需要手动处理生命周期:UI组件只是观察相关的数据,而不需要主动停止或恢复观察。LiveData会自动管理这一切,因为它在观察时就知道相关的生命周期状态变化。

    1.1K10

    Android  JetPack~ LiveData (一)   介绍与使用

    3、LiveData与MutableLiveData区别 4、LiveData的使用 5、MutableLiveData的使用 6、LiveData和MutableLiveData的可变与不可变 7、...其他方法 1、什么是LiveData LiveData是一个观察者模式的数据实体类,它可以在所有注册观察者回调里查看数据是否有更新。...下面代码讲解 抽象类,无法直接new 2、什么是MutableLiveData MutableLiveData的父类是LiveData 用法和LiveData类似,也是在注册观察者回调里查看更新数据 可变...或者Fragment的全部观察者 hasActiveObservers()   如果此LiveData具有活动(Activity或者Fragment在前台,当前屏幕显示)的观察者,则返回true。...其实如果这个数据的观察者在最前台就返回true,否则false。 hasObservers()   如果此LiveData具有观察者,则返回true。

    1.6K20

    Jetpack之LiveData详解

    主要有如下两个作用: 实时刷新数据 防止内存泄漏 LiveData 采用的是观察者模式,当 LiveData 保存的数据发生变化时就会通知观察者,观察者接收到通知后可以进行 UI 数据刷新或者其他操作。...对象,它是 LiveData 的子类,然后给它添加观察者对象,代码如下: java: final MutableLiveData simpleLiveData = new MutableLiveData...0 时调用,即有活跃的观察者对象时调用 protected void onInactive():当活跃的观察者对象数量等于 0 时调用,即无活跃的观察者对象时调用 MutableLiveData:可变的...它新增了两个方法 addSource 、removeSource 用于添加和删除 LiveData 源 Observer: 观察者接口,通过该接口对 LiveData 数据进行观察 2、详细使用 MutableLiveData... userLiveData1 = new MutableLiveData(); MutableLiveData userLiveData2 = new MutableLiveData

    1.7K20

    带你了解LiveData重放污染的前世今生

    在一个List/Detail模式中,这里是列表的ViewModel。...用户点击按钮,于是跳转了Detail界面 用户按下返回键,回到列表界面中去 观察者在Activity处于Pause的堆栈中时,会变成不活动状态,返回时,会再次成为活动状态 但此时,观察的值仍然是True...例如:一个值可以在没有观察者活动的情况下被设置,所以新的观察者会直接取代它。另外,从不同的线程设置值可能会导致竞赛条件,只产生一个对观察者的调用。...确保你的用户界面与你的数据状态相匹配:LiveData遵循观察者模式,当生命周期状态改变时,LiveData会通知观察者对象。你可以整合你的代码来更新这些观察者对象中的UI。...不再需要手动处理生命周期:UI组件只是观察相关的数据,而不需要主动停止或恢复观察。LiveData会自动管理这一切,因为它在观察时就知道相关的生命周期状态变化。

    1.3K10

    Jetpack组件之LiveData

    LiveData 是一种可观察的数据存储器类。它是一个数据的容器,将数据包装起来,使数据成为被观察者,当数据发生变化时,观察者能够获得通知。...这种感知能力确保 LiveData 仅更新处于活跃生命周期状态的应用组件观察者。 优势 确保界面符合数据状态 LiveData 遵循观察者模式。...不需要手动处理生命周期 界面组件只是观察相关数据,不会停止或恢复观察。LiveData 将自动管理所有这些操作,因为它在观察时可以感知相关的生命周期状态变化。...MutableLiveData value; public MutableLiveData getCurrentValue() { if...homeViewModel.getCurrentValue(), String::valueOf); //aLiveData监听bLiveData内容的变化,变化时从bLiveData获取相应的cLiveData, //添加到aLiveData的监听列表里

    84130

    Android Jetpack系列 之LiveData

    LiveData 与普通可观察类不同的是LiveData具有生命周期感应能力,比如我们在页面中进行网络请求结束后,需要将数据显示在UI上,如果此时页面被销毁就会有空指针等异常,我们还需要在页面销毁的时候单独处理...android:layout_width="match_parent" android:layout_height="wrap_content" /> 新建对应的Main4ActivityModel 来观察...程序达到了我们预期的结果,但是我们这里知道,对于学生这个属性来说,学号和姓名是不可变的,只有分数是可变的,所以这个时候我们可以使用map函数只对分数进行观察,改写ViewModel中的代码如下所示: public...在实际项目开发中我们使用switchMap的频率还是很高的,毕竟 只要LiveData对象是调用其他方法获取的 ,我们就可以这样做, 在点击事件中我们设置了可观察数据:分数,当分数改变的时候,就会执行switchMap...函数 ,switchMap会将获取的数据转换为可观察的LiveData,所以我们监听这个LiveData对象 就可以观察到数据的变化了。

    1.1K20

    Jetpack—LiveData组件的缺陷以及应对策略

    我这里for循环add了10次观察者呀。难道是lambda导致的问题?嗯,我们可以把Observer的数量打出来看看,看看到底是哪里出了问题。...看下源码,如下图所示:我们的观察者实际上都是存在这个map里面的,我们取出来这个map的size就可以知道原因了。...那么问题来了,我明明是for循环添加了10个观察者啊,为啥一改成lambda的写法,我的观察者就变成1个了?遇事不决我们反编译(用jadx直接反编译我们的debug app)一下看看。...这里要注意了,我是先更新的livedata的值,过了一段时间以后才注册的观察者,那么此时,理论上我应该是收不到livedata消息的。...导致你的页面再也回不到列表页了。 2.3 解决方案一:引入中间层 俗话说的好,计算机领域中的所有问题都可以通过引入一个中间层来解决。

    1.2K20

    观察易,实现您的IT业务可观察

    可观察性发展背景 可观察性的概念起源于工业领域,在该领域中,可观察性被定义为从系统外部输出推断系统内部健康状态的能力。...在Cindy Sridharan 提出可观察性之前,谷歌著名的 SRE 体系就已经为可观察性奠定了理论基础,也就是说在微服务、可观察性等概念出现以前,业内通常称之为监控。...以上三种形式的组合使用将会产生丰富的观察数据,日志易由此推出了国产可观察性监控平台——观察易。...观察易,日志易可观察性监控平台 3.jpg 观察易是一个基于日志易平台,从业务-服务-接口-设备四层维度对应用系统进行分析的可观察性监控平台,接入基础监控指标和业务分析日志数据后,通过梳理业务层面的依赖关系...观察易加强了日志、链路、指标的三大可观察性支柱间的关联,从而缩短了发现并解决问题的时间。

    63520

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券