背景介紹:
在需要多個界面之間傳遞信息使用劫恒,rxbus簡便疙渣、簡單苫亦。
發(fā)送方-UserBindPasswordActivity:
在綁定密碼成功之后,需要把成功的消息發(fā)給用戶信息頁面
@Override
public void updatePasswordSuccess() {
RxBus.getDefault().post(new Events.UserBindPassword(true));
finish();
}
接收方-UserInfoActivity :
用戶信息頁面接收到成功綁定的消息梨水,做相應(yīng)的操作。
// 重新設(shè)置密碼成功的回調(diào)
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
public void event(Events.UserBindPassword password) {
if (password.isResetPasswordSuccess()) {
mTvLoginPwd.setText("修改");
mTvLoginPwd.setTextColor(getResources().getColor(R.color.black));
}
}
消息實體類-Events :
需要一個實體類來區(qū)別不同的消息茵臭,在Events類中定義一個內(nèi)部類:
public static class UserBindPassword {
boolean resetPasswordSuccess;
public UserBindPassword(boolean resetPassword) {
this.resetPasswordSuccess = resetPassword;
}
public boolean isResetPasswordSuccess() {
return resetPasswordSuccess;
}
public void setResetPasswordSuccess(boolean resetPasswordSuccess) {
this.resetPasswordSuccess = resetPasswordSuccess;
}
}
最后還需要注冊及取消注冊:
@Override
protected void onStart() {
super.onStart();
RxBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
RxBus.getDefault().unRegister(this);
}
基于:
compile 'com.wzgiceman:RxBus:1.0.2'