上文,我们通过简单的ViewModel使用源码入手,对其源码进行阅读,原理进行了简单总结,简单来说,ViewModel是通过Activity的onRetainNonConfigurationInstance 与 getLastNonConfigurationInstance的自动调用,实现了 ViewModel数据的存储和恢复,数据存储在ViewModelStore的map中,更加明确的话,应该是存储在activity对象的某个属性对象中。
Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(一)
Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(二)
Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(三)
Android Jetpack 从使用到源码深耕【ViewModel从实践到原理 】(四)

本文详细探讨了Android Jetpack的ViewModel,尤其是SavedStateHandle的使用和原理。通过对比onSaveInstanceState与onRetainNonConfigurationInstance,揭示了ViewModel在配置变更时的数据保存机制。在构造函数和源码分析中,解释了SavedStateHandle如何在Activity重建时保存和恢复数据。同时,通过示例和错误分析,展示了SavedStateHandle的正确用法,以及其在ViewModel创建过程中的作用。
订阅专栏 解锁全文
2852





