のっけから余談が混じってるんですが、先日greenrobotのEventBus用の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を発表したばかりでまだ開発中らしいです。
詳細は下記から。
- http://androiddevblog.com/eventbus-3-droidcon/
- http://androiddevblog.com/wordpress/wp-content/uploads/EventBus3.pdf
最後に
EventBus3用にも作りました。
ちなみに
同じイベントを2つSubscribeしておくと、どっちにも飛んでくるみたいです。
@Subscribe
public void handleAEvent1(AEvent event) {
//
}
@Subscribe
public void handleAEvent2(AEvent event) {
//
}
さらに、いままでの指定の仕方では無反応でした。
public void onEvent(AEvent aEvent) {
//
}