我可以安全地将代码持久化视图模型的onCleared
方法中的视图模型数据吗?如果应用程序因任何原因被终止或完成,或者在某些情况下可能无法调用onCleared
,那么是否会保证视图模型的数据将被放入持久存储?
是否存在不能调用onCleared的情况?
至少在Activity
上的onDestroy()
可能不会被调用的情况下。其中包括:
- 未处理的异常
- 用户点击";"强制停止";在"设置"应用程序的应用程序屏幕上
- 在某些情况下,系统会在后台终止您的进程(特别是对系统RAM的需求非常迫切,例如处理来电,而您的应用程序的进程会"抽短稻草"终止(
因此,通常会调用onCleared()
,但这并不能保证。