jetpack(jetpack-liveData 原理解析)
本文目录
jetpack-liveData 原理解析
liveData是个可观察的数据持有者,和常规的observable不同,liveData具有生命周期感知的,这意味着它能够在activity fragment service中正确的处理生命周期。liveData很少单独使用,更多的是和Android jetpack 其他组件配合使用,比如viewmodel。 当数据更新后,liveData就会通知它所以的观察者,和RXJava不同的时候,liveData 并不是通知所有的观察者,它只会通知处于Active状态的观察者。如果一个观察者处于Paused状态或者destoryed状态(lifecycle状态),不会收到通知。 liveData也不会产生内存泄漏问题,开发者不需要在onPause或者onDestory中解除对liveData的订阅,因为liveData在内部结构中,会一直判断当前状态,当处于destoryed时候,就会自动移除订阅。
1.创建liveData实例对象。mutableLiveData继承LiveData(抽象类)
2.订阅(observe)观察者,传入lifecycle对象和Observer接口,Observer是个泛型接口,为了回调数据,只声明了一个onChanged函数。
3.发送数据,postValue 异步子线程发送,setValue 主线程发送
订阅的过程,就是创建观察者,对lifecycle进行订阅,如此就可以感知activity fragment等生命周期
postValue 通过 handle 从子线程切换为主线程,最终还是调用setValue
查看jetpack的版本
head -n 1 /etc/nv_tegra_release 查看TensorRT的版本: dpkg -l | grep TensorRT
更多文章:
八字起名大全免费取名,生辰八字免费起名网?周易起名网官网免费,周易免费起名测名网
2024年6月2日 08:26
net framework 4 0 30319(net framework 4.0.30319安装失败)
2024年7月23日 02:41
江海证券官方下载(江海证券官网-江海证券软件下载-江海证券合一版)
2024年5月8日 08:08
pes2009修改器(如何使用PES2009大师联赛金钱修改器)
2024年6月25日 08:58
5月18日蚂蚁庄园答案(支付宝中的蚂蚁森林与蚂蚁庄园对提高芝麻信用有用吗)
2024年3月8日 13:20
银河期货官网(刚刚在银河期货开户,想了解一下期货银期转账时间是怎样的)
2024年7月21日 19:55
win10模拟器安卓版下载(有没有在win10环境下安装Genymotion安卓模拟器的朋友)
2024年7月21日 08:51
WOW血精灵升级路线?WOW的暗夜精灵计划表:安达洛斯在哪里
2023年5月4日 08:00
熊猫云杀毒和360杀毒、小红伞三个免费软件哪个更适合上网本使用?熊猫云杀毒软件的离线查杀能力怎样
2024年6月26日 00:32
visio流程图(怎样使用Office Visio绘制流程图)
2024年8月29日 19:05
embarrassment(embarrassment是什么意思)
2024年6月23日 08:09
正版adobe软件多少钱(Adobe上Ps、AI等在Mac上都多少钱)
2024年7月7日 18:39
adobe photoshop序列号(安装photoshop7.0.1的序列号)
2024年6月20日 02:32