https://www.jianshu.com/p/7f77cfc43313
Lifecycle
LiveData
ViewModel
注意
- ViewModel中不能持有Activity的Context对象
ViewModel的生命周期比Activity和Fragment长,在配置改变时,Activity会销毁重建,而ViewModel不会,所以ViewModel不应该持有Activity的Context对象,否则可能造成内存泄漏。如果需要在ViewModel中用到Context对象,应当继承AndroidViewModel。
- ViewModel不应当取代onSaveInstanceState方法
进程关闭重启时,onSaveInstanceState存储下来的数据在应用重新回到前台时仍然可以被恢复,而ViewModel在进程关闭时会被销毁。