如何使用eventBus

博主是个菜鸟,之前写项目的时候fragment和activity混合使用,遇到了一个问题,就比如说fragmentA是隶属于activityA的,而我现在从fragmentA跳到activityB,那么问题就来了:我在activityB从后台获取数据,想要刷新fragmentA中listView的数据,但是activity是不能通过tag来获取到fragmentA的对象的,因为fragmentA是隶属于activityA的,侬晓得伐。。所以说你在fragmentA中写一个upData方法,在activityB中调用时行不通的,所以在老大的提醒下我想到了有一个之前没怎么解除过的EventBus!
说实话,确实是很强啊,只需要下载一个jar包,添加依赖,然后就以我们说的fmA,aA和aB来说,只需要在fmA注册和反注册EventBus;然后复写 onEventMainThread方法来接受aB发出的消息。当然了,你需要在aB里发送一个消息,然后这个消息需要你new一个自定义实体类来传递,下面贴上代码:


fmA:

@Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); EventBus.getDefault().register(this); }


public void onEventMainThread(AnyEvent event) { String msg = "onEventMainThread收到了消息:" + event.getVipInnerData(); Toast.makeText(getContext(), msg, Toast.LENGTH_LONG).show(); }




@Override public void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }





aB:


EventBus.getDefault().post(new MsgCount("消息")); MsgCount:


【如何使用eventBus】

public class MsgCount { private String mMsg; public MsgCount() {}public MsgCount(String msg) { mMsg = msg; }public String getMsg() { return mMsg; }public void setMsg(String msg) { mMsg = msg; } }



好了, 就此结束,博主只是个码农,并不是程序员,为成为一名真正的程序员一起奋斗吧大家!

    推荐阅读