皮皮网

【下载上传源码】【酒仙网 源码】【glide源码分享】databinding源码分析

时间:2025-01-04 07:59:52 来源:红色游戏挂机源码

1.databindingԴ?码分????
2.Jetpack学习之----ViewModel

databinding源码分析

databindingԴ?????

       1)

       启动visual basic6.0 ,打开一个新的码分下载上传源码标准工程。

       2)

       在窗体上Form1上添加6个标签空间(Label) 2个命令按钮(CommandButton)和1个计时器(Timer)。码分酒仙网 源码命令按钮的码分glide源码分享Caption属性分别为“启动”“停止”

       Timer1的Interval属性为

       Label1 Label2 Label3的Caption属性分别为“开始时间”“结束时间”“经过时间” Timer1的Enable属性为False

       3)代码

       Dim Starttime As Variant

       Dim End time As Variant

       Dim Elapsed As Variant

       Private Sub cmdStart_Click()

       '显示开始时间

       lblStart.Caption=Time$

       Starttime=Now

       '启动时钟控件

       Timer1.Enabled=Ture

       End Sub

       Private Sub cmdStop_Click()

       '记录停止时间

       Endtime=Now

       '关闭时钟控件

       Timer1.Enabled=False

       '显示经过时间

       lblApaed.Caption=Format(Endtime-Starttime,"hh:mm:ss"

       End Sub

       Private Sub Timer1_Timer()

       lblStop.Caption=Time$

       End Sub

       以上是用VB6.0实现的

Jetpack学习之----ViewModel

        官方学习文档

        ViewModel就是存储页面相关的数据,并将这些数据和Activity、Fragment等有生命周期相关的组件相关联,赋予数据生命周期。

        特点:

        ViewModel的生命周期

        在viewModel对象创建时开始,一直到他所关联的界面控制器销毁时才销毁,这就说明了即使发生了横竖屏切换,界面相关的数据也是一直存在并且不受横竖屏切换的影响。

        通常我们是在Actvity的onCreate()方法中来创建ViewModel对象,该ViewModel对象会一直在内存中,直到这个Activity销毁时才释放资源。

        从上面ViewModel的工作原理可以得知:

        1、ViewModel 一旦创建好了,就会一直保存到当前界面控制器(Activity 、Fragment等)销毁时才会释放资源;

        2、不同的界面控制器,ViewModel 的对象时存在不同的Hashmap中的,他们也是不同的对象;局部单例;

        3、要做到全局单例ViewModel对象,可以将ViewModel放到Application中去;

        接下来从源码角度来分析一下原理:

        在构建Activity的对象时,在其父类ComponentActivity.java中实现了接口ViewModelStoreOwner,在其实现方法中生成ViewModelStore对象

        在界面控制器的构造函数中,就添加了对生命周期的观察者,而当观察者收到当前的界面控制器的生命周期是Lifecycle.Event.ON_DESTROY时,就会将mViewModelStore对象map中所有保存的viewModel清理掉,这样来达到释放资源。

        这里只处理了ON_DESTROY的生命周期状态,那么也就说明了在ViewModel对象实例创建成功后,不管界面控制器(如Activity)的生命周期(除ON_DESTROY外)如何发生变化,ViewModel都不会被清理掉。

        从这里看出来ViewModel对应key的唯一性

        ViewModel工作原理的核心技术点:

        观察者模式、工程模式、反射、Hashmap数据结构

        ViewModel在MVVM架构模型中,与DataBinding结合使用,会让你有起飞的感觉。后续会进一步加深使用。本篇仅以学会使用、了解原理为重点。

推荐资讯
再等4年!蘋果自駕車Apple Car傳降規 推出日程延至2028年

再等4年!蘋果自駕車Apple Car傳降規 推出日程延至2028年

tinker源码

tinker源码

mkdosfs 源码

mkdosfs 源码

stormkafka源码

stormkafka源码

納指大跌超500點 道指卻創歷史新高 美聯儲重磅發聲

納指大跌超500點 道指卻創歷史新高 美聯儲重磅發聲

vtcp 源码

vtcp 源码

copyright © 2016 powered by 皮皮网   sitemap