• ViewModel的出现确实解决一个简单而又繁琐的问题,大家都知道用户在使用产品的过程中,可能随时会被中断或界面发生重建,
    如果数据的丢失会造成很差的用户体验,当然现在都知道在onSaveInstanceState()中保存数据,
    在界面重建时恢复数据,这种虽然可以解决问题,但会造成每个界面都要编写板寸和恢复的代
    码,而且数据量过大时会影响执行性能,VIewModel的出现就是解决这个问题,它会在活动重建
    时仍然保存数据,在活动创建完成后从中获取数据

    ViewModel的生命周期:

    1. ViewModel对象的范围是在获取ViewModel时传递给ViewModelProvider的Lifecycle生命周期
    2. ViewModel在内存中直到Activity销毁或Fragment被移除
    3. 系统首次调用活动对象的onCreate()方法时,通常会请求ViewModel
    4. 系统可能会在整个活动的整个生命周期中多次调用onCreate(),例如当设备屏幕旋转时
    5. ViewModel从第一次请求ViewModel直到活动完成并销毁时存在

    ViewModel的优点:

    1. 数据和界面的分离,使数据驱动界面
    2. 解决了运行中断和界面重建时的数据保存问题
    3. 配合LiveData实时获取最新数据
    4. 实现Activity中Fragment之间的数据交互

    将数据保存到ViewModel中,然后为活动中添加一个HolderFragment,HolderFragment中保存了
    ViewStore的实例,ViewStore中使用Map保存了ViewModel,从而在活动重新创建时获取到原来
    的ViewModel

    注:一般时VIewModel和LiveData组合保存可观察的数据

    上一篇:
    什么是JNI?它主要用来干什么。
    下一篇:
    NDK相关(6)
    本文目录
    本文目录