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

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

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

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

你的实施很好。当您的Activity被销毁时,您可以释放数据库资源。

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