1、引入依赖
implementation 'org.greenrobot:eventbus:3.1.1'
2、定义一个事件的封装对象(登录成功发出通知)
public class LoginEvent {
//消息类型可以传递多种数据
public final String message;
public static LoginEvent getInstance(String message) {
return new LoginEvent(message);
}
private LoginEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
3、接受消息界面
(1)注册EventBus
EventBus.getDefault().register(this);
(2)接受并处理消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(LoginEvent event) {
String message = event.getMessage();
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
(3)注销EventBus
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
完整代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EventBus.getDefault().register(this);//注册EventBus
}
//接收消息
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(LoginEvent event) {
String message = event.getMessage();
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);//注销EventBus
}
}
4、发送消息
EventBus.getDefault().post(LoginEvent.getInstance("登录成功"));