search
LoginSignup
26

More than 5 years have passed since last update.

posted at

updated at

Organization

(greenrobot)EventBus3ではAnnotationで指定するようになるらしい

のっけから余談が混じってるんですが、先日greenrobotのEventBus用のPluginを公開しました。

eventbus-intellij-plugin

postしているところからonEventやonEventMainThreadに、またその逆方向にサクサク飛べるというものです。(ottoの方は前からありましたよね)

で、公開した後に、greenrobotのgithubを見に行って気づいたのですが、 Annotation 形式になるみたいですね。

(いきなり作ったpluginが葬られるやないか。。)

ということで本題です。

EventBus3で実際どういう風に変わるのか調べたので、紹介します!

導入方法

まだbetaです。いま使ってみたいという方向け。

build.gradle
    compile 'de.greenrobot:eventbus:3.0.0-beta1'
    provided 'de.greenrobot:eventbus-annotation-processor:3.0.0-beta1'

どう変わるのか?

onEvent

これが

public void onEvent(MyEvent event) {
  // 
}

こうなります。

@Subscribe
public void hanlde(MyEvent event) {
  //
}

onEventMainThread

これが

public void onEventMainThread(MyEvent event) {
  //
}

こうなります。

@Subscribe(threadMode = ThreadMode.MainThread)
public void handle(MyEvent event) {
  //
}

registerSticky

これが

{ registerSticky(this); }

public void onEvent(MyEvent event) {
  //
}

こうなります。

{ register(this); }

@Subscribe(sticky = true)
public void handle(MyEvent event) {
  //
}

とはいえまだまだ開発中みたい

Droidconでbeta1を発表したばかりでまだ開発中らしいです。
詳細は下記から。

最後に

EventBus3用にも作りました。

eventbus3-intellij-plugin

ちなみに

同じイベントを2つSubscribeしておくと、どっちにも飛んでくるみたいです。

    @Subscribe
    public void handleAEvent1(AEvent event) {
        //
    }

    @Subscribe
    public void handleAEvent2(AEvent event) {
        //
    }

さらに、いままでの指定の仕方では無反応でした。

    public void onEvent(AEvent aEvent) {
        //
    }

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
26