| |
1.在平常项目中,有时候需要广播去通知及时修改aitivity的需求
1.而这个时候并不能使用回调进行处理,因为xml注册的广播,会不止一个实列,从而导致activity实例化回调监听无效,爆出空指针异常
2.其实我们可以使用动态注册广播,然后通过回调进行处理。但是偏离了我们的需求
3.所以其实我们可以通过使用eventbus,这个第三方来达到我们的需求
2.以下是eventbus使用方法
1.在项目的build.gradle中引入第三方插件,这里以直接依赖的方式使用
compile 'org.greenrobot:eventbus:3.0.0'
2.创建一个类
public AnyEventType(String msg) { // TODO Auto-generated constructor stub mMsg = msg; } public String getMsg(){ return mMsg; }3.在需要接受消息的界面注册和反注册eventbus
注册
EventBus.getDefault().register(this);
反注册
EventBus.getDefault.unregister(this)
4.在需要接受消息的页面加入以下的方法
public void onEventMainThread(AnyEventType event) {
String msg = "onEventMainThread收到了消息:" + event.getMsg();
Log.d("MyReceiver", msg);
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}
5.在发送消息的地方
EventBus.getDefault().post(new AnyEventType("FirstEvent btn clicked"));
这就是一个简单的eventbus使用