如何在杀死应用程序时最好地清除Android ViewModel?

问题描述 投票:0回答:1

我目前正在重写ViewModel.onCleared()以清理我的ViewModel,以防止任何泄漏(在这种情况下,从应用程序的内部存储中删除所有未使用的文件)。

[当ViewModel的活动显式完成但由于在终止应用程序时onDestroy()不会被调用,而没有调用onCleared()时,这完全正常。

(目前,我的意图是不保存任何数据,我只是不希望任何数据泄漏,无论是在系统杀死我的进程还是在用户杀死它的时候。

[我知道我可以使用Activity.onSaveInstanceState()ViewModel's Saved State保存状态,但是由于我真的不想保存数据,特别是由于最后一个似乎不容易与Dagger集成,因此两者似乎都有些过分。此外,这仅在系统终止进程时有用,而在用户终止应用程序时则无济于事,因为那时实例状态将永远不会恢复。

是否有保持干净状态的有效方法?

android android-lifecycle android-viewmodel
1个回答
0
投票

如果我对您的理解正确,活动中断时是否需要保存一些数据?如果是这样,则实现此目标的最佳方法是onSaveInstanceState()。在ViewModel中,保留组成屏幕所需的所有数据非常方便。它们将在旋转屏幕时生效,但在应用程序被系统终止时将消失。

© www.soinside.com 2019 - 2024. All rights reserved.