在哪里销毁数据库实例:Activity onDestroy()或ViewModel onCleared()?

时间:2019-02-26 10:50:38

标签: android memory-management viewmodel android-lifecycle android-viewmodel

我应该在哪里销毁数据库实例?活动中的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的每个实例)。

1 个答案:

答案 0 :(得分:0)

您的实现很好。 Activity被销毁后,您可以释放数据库资源。