Android, уведомлять фрагменты backstack о некоторых изменениях - PullRequest
0 голосов
/ 27 апреля 2018

Как лучше всего уведомлять все фрагменты, которые находятся в backstack, о некоторых изменениях?

Я пытаюсь использовать EventBus, и каждый Фрагмент подписывается на событие, затем, когда происходит изменение, основное действие отправляет почтовое событие всем подписчикам.

Только onDestroy Отписываю уничтоженный фрагмент.

Мне не нравится это решение, потому что если в backstack много фрагментов, оно может быть тяжелым + много слушателей одновременно.

мое приложение имеет бесконечную детализацию, от одного фрагмента, который вы заменяете на другой (и добавляете в backstack), и вы можете заменить снова (и добавить в backstack) и так далее ..., без конца.

1 Ответ

0 голосов
/ 27 апреля 2018

Возможное решение - поместить некоторые данные в общие настройки и прочитать их во фрагменте onResume.

Или вы можете поместить эту информацию в другие части, такие как серверы конфигурации или внешняя служба

Очевидно, что если все эти фрагменты принадлежат одной и той же деятельности, вы можете поместить информацию в свою деятельность, тогда вы можете прочитать ее из этой прикрепленной операции.

Для удаленно извлеченных данных

Вы можете поместить свои данные в одноэлементный класс, ответственный только за хранение данных. Имейте в виду, что в android синглтон может быть уничтожен в некоторых предельных случаях, поэтому, когда ваш фрагмент возвращается на передний план, проверьте, является ли синглтон пустым, и в конечном итоге повторите ваш вызов извлечения

Вы можете увидеть пример здесь

...