Я думаю, что могу ответить на этот вопрос сам, случай использования, где использование пользовательского LifecycleOwner
имеет смысл использовать, если у вас нетипичный жизненный цикл, означающий жизненный цикл, отличный от одного действия и фрагментов.
Мне пришлось использовать фрагменты для загрузки рекламы на экране блокировки телефона, а это означало, что реклама должна была быть загружена, когда экран телефона был выключен, и пользователь мог видеть рекламу, когда он нажимал кнопку включения питания. телефона и включите дисплей.
Это поведение важно: реклама должна быть загружена в фоновом режиме (экран выключен), и когда пользователь включает экран, оно появляется для просмотра пользователем. it.
Выполнение фрагментной транзакции при выключенном экране означало, что транзакция произойдет после вызова onStop()
действия, и это возможно только с использованием commitAllowingStateLoss()
.
. Также данные, которые должны были передаваться в качестве аргументов фрагментам, должны были быть и могут быть обновлены, когда экран также был выключен, чем t означает снова, когда действие находится в остановленном состоянии.
Поэтому мне пришлось создать пользовательский LifecycleOwner
для использования с объектом LiveData
, который бы наблюдал изменения данных, которые должны были быть переданы к фрагментам.
Эта пользовательская реализация LifecycleOwner
будет игнорировать состояние остановки действия, и таким образом LiveData
может реагировать на изменения данных, даже когда действие было в состоянии остановки.