Как использовать EventBus GreenRobot для трансляции событий из службы в активность?

Недавно я узнал о библиотеке EventBus. В основном мой вариант использования вращается вокруг службы и действия.

Сервис используется для отслеживания изменений в соединении BLE.

Активность используется для сообщения об этом состоянии подключения пользовательскому интерфейсу.

Как я могу добиться того же, используя библиотеку.


person Dinesh Ravi    schedule 15.10.2015    source источник


Ответы (1)


В методе onResume вашей деятельности зарегистрируйтесь для участия в событиях:

EventBus.getDefault().register(this);

И отмените регистрацию на onPause

EventBus.getDefault().unregister(this);

Когда служба запущена и получает информацию о BLE, отправьте эту информацию через EventBus:

BLEInfo bleInfo = new BLEInfo(... // create some kind of object to aggregate the info about ble connection
EventBus.getDefault().post(bleInfo);

Наконец, реализуйте поведение активности для получения информации:

public void onEvent(BLEInfo bleInfo) {
    // update your UI based on bleInfo
}
person maciekjanusz    schedule 15.10.2015