В моем приложении я добавляю Fragments динамически в контейнер в основном представлении активности. Я хотел бы знать, как лучше всего передавать данные при использовании Отто при добавлении фрагмента. В настоящее время это то, как я это делаю, пожалуйста, например, я не отправляю свой CustomObject
Внутри моей основной деятельности
getSupportFragmentManager().beginTransaction() .add(R.id.fragment_container, MY_CUSTOM_FRAGMENT).commit(); BusProvider.getInstance().post(produceCustomString());
Внутри моего фрагмента
@Subscribe public void onCustomStringChanged(String customString) { }
Методы, аннотированные с помощью @Subscribe
будут @Subscribe
автоматически, если у вас также есть метод @Produce
для того же типа.
Лучший способ информировать новые фрагменты данных, подобных этому, – это метод @Produce
в отношении активности:
@Produce public String produceCustomString() { return "Hello, World!"; }
И тогда все ваши фрагменты, которые имеют методы @Subscribe
:
@Subscribe public void onCustomStringEvent(String event) { // ... }
Когда вы регистрируете фрагмент, который имеет этот метод, Отто @Produce
метод @Produce
для действия, чтобы получить последнее значение, которое оно передаст методу фрагмента.