Closed yezihengok closed 4 years ago
不好意思 最近公司项目比较忙,回复的比较晚。 按我的理解,ViewModel并不是说使用了就避免内存泄漏了,而是要做一些操作。
ViewModel里面数据的变化通过观察者模式改变Activity中View的变化,而中间的媒介是LiveData
。LiveData
会和对应Activity的生命周期绑定owner.getLifecycle().addObserver(wrapper)
;所以当Activity销毁的时候,如果数据返回了也是不会渲染数据的,而且对应的LiveData
也会被移除removeObservers
。
ViewModel里自带一个onCleared()
方法,此方法会在Activity销毁时调用,使用者可以在这里做一些释放资源的操作。
@yezihengok
thanks~~
最近刚学习,不太明白 想问问作者ViewModel是怎么避免内存泄漏的呢