Как лучше всего закрыть экземпляр Store в приложении Flutter?
Я создаю приложение Flutter с базой данных ObjectBox.
Приложение вызывает openStore();при запуске и сохраняет экземпляр Store в одноэлементном классе, чтобы я мог получить к нему доступ из любого места.
Но я не уверен, когда вызывать store.close ();
В iOS мы можем выполнить код прямо перед завершением работы приложения с помощью applicationWillTerminate (_:)
К сожалению, Flutter не предоставляет нам ничего подобного.
Я пробовал приведенный ниже код в самом долгом ожидаемом StatefulWidget, но иногда он удаляется раньше, и приложение теряет доступ к базе данных.
@override
void dispose() {
StoreHelper().store?.close();
super.dispose();
}
Мои вопросы ...
- Как лучше всего вызвать store.close()?
- Что будет, если я не закрою магазин? Может ли мое приложение потерять постоянство данных?
1 ответ
Мне кажется, что ты делаешь нормально. Вы можете немного изменить его, чтобы
Кроме того, в большинстве случаев вам следует уйти, не закрывая магазин явным образом. Если вы не выполняете (много) операций записи в фоновом режиме, и в этом случае вам, вероятно, следует попытаться хотя бы дождаться его завершения в