EventBus
[EventBus] — это шина событий публикации/подписки для openhormony и Java.
EventBus:
Добавление 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"]
}
Если вам нужно выполнить пять шагов для запуска демо:
EventBus за 4 шага
public class TestApplication extends AbilityPackage {
@Override
public void onInitialize() {
super.onInitialize();
EventBus.initThreadForHos(getUITaskDispatcher());
}
}
public static class MessageEvent { /* Дополнительные поля при необходимости */ }
@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);
}
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 )