Есть ли модель представления, которая очищается в режиме действия (переходит в фоновый режим), что я должен использовать вместо этого?

#android #android-activity #viewmodel #store #onpause

Вопрос:

Я подумал, что модель androidviewмодель с фрагментацией в качестве владельца магазина была бы хорошей идеей для того, чтобы:

  • Обрабатывать перекрестную связь между фрагментами;
  • Обрабатывайте элементы пользовательского интерфейса, в которых сохраняются изменения навигации(например, меню навигатора или панель инструментов).,
  • Обработка временного кэша для загруженных данных (для предотвращения двойной загрузки при создании/уничтожении фрагментов)

    Например: onCreateView фрагмента()(Подключается к БД) => onDestroy фрагмента() (отключается от кэша, но остается подключенным к БД) =>> onCreateView фрагмента() снова (подключается к кэшу)).

Но самое главное:

  • Обрабатывает некоторую степень фонового прослушивания БД, что означает не так много, как службы уведомлений, которые могут переносить приложение в фоновом режиме, но также не так ограничено, как вызывается исключительно представлением, что означает, что они должны быть подключены при запуске приложения.

Проблема в том, что владелец хранилища ViewModel () фрагментации () не очищается (), …никогда, если мы предоставим моделям представления собственный гипотетический жизненный цикл, который начинается с создания экземпляра и заканчивается на onCleared (), и свяжем их с владельцем хранилища действия, которым они в основном становятся … Обслуживание.

Поэтому, прежде чем создавать пользовательский ViewModelStoreOwner, который обрабатывает/прослушивает действия OnStart() и onPause (), мне интересно, может ли уже существовать компонент, который делает это (о котором я не знаю), и как к этому компоненту можно получить доступ через различные фрагменты.

Теперь я знаю, что действия имеют свой собственный жизненный цикл, но если кто-то думает, что абсолютно каждый компонент доступен только для доступа к владельцу жизненного цикла действия…. tbh Я не думаю, что это был бы лучший подход, класс Activity станет нечитаемым, переполненным несвязанными функциями.

Комментарии:

1. «Проблема в том, что ViewModelStoreOwner от FragmentActivity () не очищается (), …никогда» — он очищается при finish() выполнении действия, т. Е. Когда вы нажимаете системную кнопку «Назад», чтобы закрыть действие. Вы читали Руководство по архитектуре приложений ? В нем объясняется роль моделей представлений и то, как кэшировать данные и предоставлять их вашему пользовательскому интерфейсу с помощью API с учетом жизненного цикла.

2. Нет, не видел, спасибо за ссылку.