欢迎来到皮皮网网首页

【爱5源码】【KD源码画线】【infoGAN 作者源码】databinding源码分析

来源:前端源码下载 时间:2024-11-24 17:10:08

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

databinding源码分析

databindingԴ?????

       1)

       启动visual basic6.0 ,打开一个新的码分爱5源码标准工程。

       2)

       在窗体上Form1上添加6个标签空间(Label) 2个命令按钮(CommandButton)和1个计时器(Timer)。码分KD源码画线命令按钮的码分infoGAN 作者源码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结合使用,会让你有起飞的感觉。后续会进一步加深使用。本篇仅以学会使用、了解原理为重点。