Перейти к содержимому
Меню
  • Java SE
  • Android
  • Поиск
  • Java SE
  • Android

JAVA-HELP

Сайт для Java разработчиков

Android. Обзор библиотеки Otto

Otto — это библиотека с открытым исходным кодом, которая обеспечивает удобное взаимодействие компонентов вашего приложения между собой.

На примерах станет понятнее для чего нужен Otto. Но прежде чем приводить пример я расскажу о том, как работает Otto. Библиотека работает по принципу издатель-подписчик. У нас есть общедоступный статический экземпляр класса Bus. В этом классе мы регистрируем наших подписчиков.В качестве подписчиков выступают методы аннотированные аннотацией @Subscribe. Мы можем посылать разные объекты экземпляру класса Bus. Otto ищет класс метод похожими параметрами и вызывает его, передав ему наши данные.

Отправляем сообщение

Otto предназначен для использования в качестве синглтона (хотя это  не обязательно):

Bus bus = new Bus();

Для того, чтобы опубликовать что-нибудь мы должны вызвать метод post()  у нашего объекта:

bus.post(new AnswerAvailableEvent(42));

Подписчик

Для того, чтобы получать уведомления о том, что произошло какое-либо событие, нужно создать метод, который принимает только один параметр (тип события на которое он будет подписан):

@Subscribe
public void answerAvailable(AnswerAvailableEvent event) {

}

Имя метода может быть любым. Для того, чтобы начать получать уведомления нам нужно зарегистрировать класс с методами-подписчиками в нашем Bus:

bus.register(this);

Издатель

Также  иногда возникает необходимость в том, чтобы создавать объекты динамически. Здесь нам поможет аннотация @Produce, которой мы должны аннотировать метод. При вызове метода он сам отправит созданный объект на обработку:

@Produce
public String produceEvent() {
  return "Starting up";
}

Издатели также должны быть зарегистрированы:

bus.register(this);
Внимание!

После подключения Otto к проекту не забудьте добавить эти строки в ваш proguard-project.txt:

-keepattributes *Annotation*
-keepclassmembers class ** {
    @com.squareup.otto.Subscribe public *;
    @com.squareup.otto.Produce public *;
}

Библиотека на GitHub: Otto.

Категории
  • Android
  • Android-библиотеки
Предыдущая заметка

ViewPagerIndicator — индикатор для ViewPager. Часть 2

Следующая заметка

Использование Retrofit с ActiveAndroid

Рубрики

  • Android
    • Android-библиотеки
    • Android-сниппеты
    • Material Design
    • Инструменты разработчика
    • Уроки Android
  • Java SE
    • Java-сниппеты
    • Изучение Java
    • Обзор Java-классов
    • Основы Java
  • Kotlin

Популярные записи

  • Загрузка изображений с помощью библиотеки Glide. Начало работы
  • Руководство по использованию ORM DBFlow в Android-приложении
  • Анимированный Toolbar: фичи Design Support Library
  • Я хочу программировать под Android. Вопрос #5
  • Используем ACRA в своем приложении

Copyright © 2020– JAVA-HELP. Все права защищены. Политика конфиденциальности