Как использовать EventBus GreenRobot в трансляции событий от Сервиса к Активности?
Недавно я узнал о библиотеке EventBus. В основном мой вариант использования вращается вокруг службы и Деятельности.
Сервис используется для отслеживания изменений в соединении BLE.
Активность используется для сообщения об этом состоянии соединения в пользовательский интерфейс.
Как я могу добиться того же, используя библиотеку..
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
}