EventBus3.0 快速开始(Android Studio)

  • Post author:
  • Post category:其他




EventBus3.0 简单实用分为简单的五个步骤。



  1. 选择EventBus的版本。



  2. 创建Event的POJO实体类。



  3. 在Activity或者Fragment中启动时注册EventBus,停止时取消EventBus。



  4. 在Activity或者Fragment准备消费2中定义的Event实体类的方法。



  5. 发送Event.



那我们就看下面的详细步骤:



1,你的开发环境用的Android Studio(如果您用的是Eclipse,只需要下载EventBus相应的jar放到项目的libs下面就可以了)。



在Android Studio的Android项目app中的build.gradle添加EventBus关联,如下所示:




compile ‘org.greenrobot:eventbus:3.0.0’






2.定义事件,事件是POJO




(plain old Java object) 没有其他特殊的需求。







public


class

MessageEvent

{





public


final


String

message

;






public

MessageEvent

(


String

message

)


{





this

.

message


=

message

;




}




}

3.将Activity或者Fragment作为订阅者,来接受事件。在Android中,

Activities 和 Fragments通常根据他们的生命周期来作为订阅者绑定,如下图所示:



@Override




public




void


onStart


(


)




{







super


.


onStart


(


)


;




EventBus.


getDefault


(


)


.


register


(


this


)


;




}






@Override




public




void


onStop


(


)




{





EventBus.


getDefault


(


)


.


unregister


(


this


)


;






super


.


onStop


(


)


;




}








4.准备订阅着,订阅者实现事件处理的方法

(也可以称为 “订阅者方法”) 此方法可以被调用当一个事件发出之后.





方法可以用


@Subscribe注解在方法的上面定义


. 请注意EventBus 3 的方法名称可以随意选择 (不再像 EventBus 2中方法命名规范).如下:






// This method will be called when a MessageEvent is posted




@Subscribe




public




void


onMessageEvent


(


MessageEvent event


)


{





Toast.


makeText


(


getActivity


(


)


, event.


message


, Toast.


LENGTH_SHORT


)


.


show


(


)


;




}






// This method will be called when a SomeOtherEvent is posted




@Subscribe




public




void


handleSomethingElse


(


SomeOtherEvent event


)


{





doSomethingWith


(


event


)


;




}




5.发送一个事件,检查步骤4中的方法是否被执行,执行了就说明EventBus成功了。所有当前注册的订阅者(方法)符合这个事件类型的订阅者(方法)都会接受这个事件(方法会被执行)。


EventBus.


getDefault


(


)


.


post


(


new


MessageEvent


(





EventBus first

!”



)


)


;



参考资料如下:http://greenrobot.org/eventbus/



版权声明:本文为abcdefh123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。