随便写写

总结:

  1. Lifecycle原理简单来讲,被观察患者被添加到LifecycleRegistry,然后将此类与ReportFragment绑定,利用reportFragment生命周期的变化,去分发通知LifecycleRegistry 状态的变更,然后去通知每位被观察者
  2. LiveData,持有LifecycleOwner 的引用,当调用observe的时候会,作为被观察者注入到lifecycle中,从而具备了生命周期的能力,然后判断是否是活跃状态,然后调用处理Ui的回调
  3. viewModel 具有生命周期能力和保存数据的能力,当activity/fragment销毁的时候,viewModel会在lifecycle的生命周期回调中自动调clear销毁;保存数据的能力是因为,viewModel都保存在viewModelStore中,每次viewModel创建的时候,都会检查viewModelStore中是否存在,存在则不会再次创建;对于旋转屏幕保存数据,onRetainNonConfigurationInstance 保存数据 getLastCustomNonConfigurationInstance 恢复数据,所以在此创建viewModel的时候,会查缓存,有就直接用了
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容