1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-Anadea_RxBus

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

RxBus

Шина событий на основе RxJava, оптимизированная для OpenHarmony.

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

Решение 1: интеграция локального пакета har

  1. Добавьте пакет har в папку lib.
  2. Добавьте следующий код в gradle записи:
implementation fileTree(dir: 'libs', include: ['.jar', '.har'])

Решение 2:

allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:Anadea_RxBus:1.0.3'

Требования к запуску entry

Через DevEco studio и загрузку OpenHarmonySDK. В файле build.gradle в зависимостях → classpath версии проекта измените версию на соответствующую (то есть версию, используемую в вашем новом проекте IDE).

Инициализация

Рекомендуется получить единственный экземпляр шины через внедрение или другой подходящий механизм. Или получите синглтон следующим образом:

Bus bus = BusProvider.getInstance();

Подписка

Чтобы подписаться на событие, объявите и аннотируйте метод с помощью @Subscribe. Метод должен быть публичным и принимать только один параметр.

@Subscribe
public void onEvent(SomeEvent event) {
    // TODO: Do something
}

Также можно создать подписку следующим образом:

CustomSubscriber<SomeEvent> customSubscriber = bus.obtainSubscriber(SomeEvent.class,
    new Consumer<SomeEvent>() {
        @Override
        public void accept(SomeEvent someEvent) throws Exception {
            // TODO: Do something
        }
    })
    .withFilter(new Predicate<SomeEvent>() {
        @Override
        public boolean test(SomeEvent someEvent) throws Exception {
            return "Specific message".equals(someEvent.message);
        }
    })
    .withScheduler(Schedulers.trampoline());

Регистрация и отмена регистрации наблюдателя

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

bus.register(this);

Пользовательскому подписчику также необходимо зарегистрироваться на шине.

bus.registerSubscriber(this, customSubscriber);

Не забудьте также вызвать метод отмены регистрации при необходимости.

bus.unregister(this);

Публикация

Чтобы опубликовать новое событие, вызовите метод post:

bus.post(new SomeEvent("Message"));

ProGuard

Если вы используете ProGuard, добавьте следующие строки в файл конфигурации ProGuard.

-keepattributes *Annotation*
-keepclassmembers class ** {
    @com.anadeainc.rxbus.Subscribe public *;
}

Лицензия

Copyright (C) 2017 Anadea Inc

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-Anadea_RxBus.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-Anadea_RxBus.git
oschina-mirror
HarmonyOS-tpc-Anadea_RxBus
HarmonyOS-tpc-Anadea_RxBus
master