我应该在哪里销毁我的数据库实例?活动中的onDestroy()
或ViewModel中的onCleared()
?
我在我的Activity onDestroy()
方法中实现了它:
@Override
protected void onDestroy() {
super.onDestroy();
// if activity being destroyed is not because of config change...
if (isFinishing()) {
AppDatabase.destroyInstance();
}
}
documentation似乎暗示这应该在ViewModel的onCleared()
回调中完成。如果我为活动及其片段使用相同的ViewModel,该怎么办?然后调用onCleared()
方法两次(对于ViewModel的每个实例)。
你的实施很好。当您的Activity
被销毁时,您可以释放数据库资源。