Где уничтожить экземпляр базы данных: активность onDestroy () или ViewModel onCleared ()? - PullRequest
0 голосов
/ 26 февраля 2019

Где мне уничтожить мой экземпляр базы данных?onDestroy() в Activity или onCleared() в его ViewModel?

Я реализовал это в моей Activity onDestroy() метод:

@Override
protected void onDestroy() {
    super.onDestroy();

    // if activity being destroyed is not because of config change...
    if (isFinishing()) {
        AppDatabase.destroyInstance();
    }
}

Документация кажется, предполагает, что это должно быть сделано в обратном вызове onCleared() ViewModel.Что если я использую ту же ViewModel, например, для действия и его фрагмента?Затем метод onCleared() вызывается дважды (для каждого экземпляра ViewModel).

1 Ответ

0 голосов
/ 28 февраля 2019

Ваша реализация в порядке.Когда ваш Activity уничтожен, вы можете освободить ресурсы базы данных.

...