Non-Presenter 上的 GWTP EventBus Class

GWTP EventBus on Non-Presenter Class

在我的 GWTP 应用程序中,我有一个简单的 Java class,它不是 Presenter,它只是一个 class。从这个 class,我需要触发一个将从 Presenter class.

监听的事件

GWTP 在演示者之间共享一个 EventBus。问题是我需要在此 EventBus 中从外部 class 触发事件,以便演示者能够收听它。

我做了研究,到目前为止我还没有遇到与这个外部共享 GWTP 的 EventBus 的方法 class(除了从任何随机演示者内部,这是不正确的)。

正如我在这里看到的,注入的方法不起作用。 有什么想法吗?

如果需要,我会分享一些代码。谢谢!

这是我的 Class:

public class MyClass {

private static MyClass INSTANCE;

public static MyClass singleton() {

    if (INSTANCE == null) {
        INSTANCE = new MyClass();
    }
    return INSTANCE;
}

private MyClass() {
}
}

@Inject EventBus eventBus

不起作用。当我调用 eventBus.fireEvent() 时,eventBus 是 undefined.

您应该重写 class 并使用 Gin 将 MyClass 绑定为具有 bind(MyClass.class).in(Singleton.class) 的单例,然后在需要的地方注入 MyClass。你的 MyClass class 看起来像这样:

public class MyClass {
    @Inject
    MyClass(EventBus eventBus) {
        this.eventBus = eventBus;   
    }
}

如果你真的想做你自己的单例,那么你也可以使用 Gin 模块的静态注入:requestStaticInjection(MyClass.class).

public class MyClass {
    @Inject
    private static EventBus eventBus;
    private static MyClass INSTANCE;

    public static MyClass singleton() {
        if (INSTANCE == null) {
            INSTANCE = new MyClass();
        }
        return INSTANCE;
    }

    private MyClass() {
    }
}