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

OSCHINA-MIRROR/HarmonyOS-tpc-EventBus

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

EventBus

[EventBus] — это шина событий публикации/подписки для openhormony и Java.

EventBus:

  • упрощает коммуникацию между компонентами;
  • разделяет отправителей и получателей событий;
  • хорошо работает с активностями, фрагментами и фоновыми потоками;
  • позволяет избежать сложных и подверженных ошибкам зависимостей и проблем жизненного цикла;
  • делает код проще;
  • работает быстро;
  • имеет небольшой размер (~60k jar);
  • проверен на практике приложениями с более чем 1 000 000 000 установок;
  • обладает продвинутыми функциями, такими как потоки доставки, приоритеты подписчиков и т. д.

Добавление EventBus в проект

allprojects{
    repositories{
        mavenCentral()
    }
}
implementation 'io.openharmony.tpc.thirdlib:EventBus:1.0.4'
annotationProcessor 'io.openharmony.tpc.thirdlib:eventbus-annotation-processor:1.0.1'

необходимо добавить:

tasks.withType(JavaCompile){
    options.compilerArgs +=["-AeventBusIndex=org.greenrobot.eventbus.MyEventBusIndex"]
}

Если вам нужно выполнить пять шагов для запуска демо:

  1. Настройка сертификата выполняется в build.gradle.
  2. Удалите видимое поле из config.json в демо.
  3. Добавьте ohos.jar для модуля EventBus, путь к файлу ohos.jar можно получить из папки SDK во ExternalLibraries.
  4. Вам необходимо добавить входной файл «ohos.jar» в библиотеку EventBus.
  5. Добавьте «implementation files('libs/ohos.jar')» в библиотеке EventBus build.gradle.

EventBus за 4 шага

  1. initThreadForHos:
public class TestApplication extends AbilityPackage {
    @Override
    public void onInitialize() {
        super.onInitialize();
        EventBus.initThreadForHos(getUITaskDispatcher());
    }
}
  1. Определите события:
public static class MessageEvent { /* Дополнительные поля при необходимости */ }
  1. Подготовьте подписчиков:
@Subscribe(threadMode = ThreadMode.MAIN)  
public void onMessageEvent(MessageEvent event) {/* Сделайте что-нибудь */};

Зарегистрируйте и отмените регистрацию своего подписчика. Например, на openhormony активности и фрагменты обычно регистрируются в соответствии со своим жизненным циклом:

@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}
 
@Override
public void onStop() {
    super.onStop();
    EventBus.getDefault().unregister(this);
}
  1. Опубликуйте события:
EventBus.getDefault().post(new MessageEvent());

не поддерживается

R8, ProGuard

Если ваш проект использует R8 или ProGuard, добавьте следующие правила:

-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
 
# И если вы используете AsyncExecutor:
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

Лицензия

Copyright (C) 2012–2020 Markus Junginger, greenrobot (https://greenrobot.org).

Бинарные файлы и исходный код EventBus можно использовать в соответствии с Apache License, Version 2.0.

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

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

Введение

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

Обновления

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

Участники

все

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

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