eventbus的简单使用

本文介绍如何使用EventBus实现Android应用内不同组件之间的消息传递及数据刷新流程。通过注册与注销机制,确保组件间通信高效可靠。特别关注了在特定页面中接收更新通知并触发数据刷新的方法。

    /**
     * 是否需要刷新数据
     */
    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();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值