第一步:引入包
compile 'com.carlos.eventmailer:eventlibrary:1.0.4'
第二步:初使化
//boolean型参数,如果为true,那就会暂时存储无主的EventMail
//譬如你要某个界面发送EventMail,这个界面还没有打开,需要存储一下,等那个界面打开的时候,再去拿
//如果为false,那就不存储,如果这个EventMail的地址不存在或者没有注册,会被丢弃
EventMailer.init(true);
第三步:Activity或者Fragment实现IEventReceiver接口
实现这个接口会,会有这样的一个方法,所有的事件,都会发送到这个方法里
@Override
public void MailBox(EventMail mail) {
}
第四步:注册和反注册
在onCreate和onDestroy方法中,注册和反注册。
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
EventMailer.getInstance().register(this);
super.onCreate(savedInstanceState);
}
@Override
public void onDestroy() {
EventMailer.getInstance().unregisterReceiver(this);
super.onDestroy();
}
第五步:拉取EventMail
这一步,只有你在初使化的时候,传的boolean为true的时候,才有效!!
方法一:
List<EventMail> eventMails = EventMailer.getInstance().getMyEventMail(SecondActivity.class.getName());
直接返回所有发给这个界面的EventMail。如果没有,则返回null
方法二:
EventMailer.getInstance().pushMyEventMail(SecondActivity.class.getName());
调用这个方法后,所有的EventMail发送到MailBox。也就是说,如果发送给这个界面有五个EventMail,那就会回调五次下面这个方法:
@Override
public void MailBox(EventMail mail) {
}
记住:所有EventMail发送以后,EventMailer那里都不会再存储,再去获取的时候,将会为空。