Выбор ответа Senior Жизненный цикл обновлено

Flutter: подписка на жизненный цикл приложения

Вопрос

Нужно ставить видео на паузу, когда приложение уходит в фон. Какой подход корректный?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: AppLifecycleListener или WidgetsBindingObserver, отписка в dispose. Состояние приложения сообщает WidgetsBinding: через миксин WidgetsBindingObserver (addObserver в initState, removeObserver в dispose) или класс AppLifecycleListener с колбэками onPause, onResume и dispose(). build не вызывается при уходе в…

Варианты ответа

  1. Проверять AppLifecycleState в build и ставить видео на паузу прямо там
  2. Использовать deactivate: он вызывается у всех State, когда приложение уходит в фон
  3. Подписаться на Navigator и ловить didPop, который срабатывает при сворачивании
  4. AppLifecycleListener или WidgetsBindingObserver, отписка в disposeправильный ответ

Разбор

Состояние приложения сообщает WidgetsBinding: через миксин WidgetsBindingObserver (addObserver в initState, removeObserver в dispose) или класс AppLifecycleListener с колбэками onPause, onResume и dispose(). build не вызывается при уходе в фон. deactivate связан с удалением элемента из дерева, didPop с навигацией.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.