/**
* 是否需要刷新数据
*/
private boolean isRefresh = false;
//EventBus 需要知道是否需要刷新时,进行register 和配套的unregister
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EventBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
/**
获取其他页面发起的通知,当前页面发起的通知,当前页也可以收到
*/
public void onEventMainThread(EventBusBean eventBusBean) {
if("cardList".equals(eventBusBean.getFlag())){
isRefresh = true;
}
}
//在onResume 中对数据进行刷新
@Override
protected void onResume() {
super.onResume();
if (isRefresh) {
isRefresh = false;
bindCardListsNoserc.clear();
bindCardListsSerc.clear();
allPayCardList.clear();
parseCardData(appBean.getCardBindList());
}
}
/**
通过 post进行数据传递 -EventBus.getDefault().post(eventBusBean);
*/
@Override
public void onBackPressed() {
if ("1".equals(typeFlag) || "3".equals(typeFlag)) {// 有卡登录或注册关闭窗口提示
final CommonDialogUtils commonDialogUtils = new CommonDialogUtils(
CardXXActivity.this);
commonDialogUtils.setMessage(ConstantText.Card_Manage_Leave)
.setNegativeButton("取消", new OnClickListener() {
@Override
public void onClick(View v) {
commonDialogUtils.dismiss();
}
}).setPositiveButton("离开", new OnClickListener() {
@Override
public void onClick(View v) {
commonDialogUtils.dismiss();
/* 跳转到登录页面 */
Intent intent = new Intent();
intent.setClass(
CardXXActivity.this,
IndexNewActivity.class);
startActivity(intent);
finish();
}
}).show();
} else {
setResult(1);
EventBusBean eventBusBean = new EventBusBean();
eventBusBean.setFlag("cardList");
EventBus.getDefault().post(eventBusBean);
super.onBackPressed();
}
}
本文介绍如何使用EventBus实现Android应用内不同组件之间的消息传递及数据刷新流程。通过注册与注销机制,确保组件间通信高效可靠。特别关注了在特定页面中接收更新通知并触发数据刷新的方法。

2314

被折叠的 条评论
为什么被折叠?



