十,当前Activity发送事件给上一个Activity

当前Activity发送事件给上一个Activity

当前的Activity关闭后给打开它的上一个Activity发送事件,这个类似与startActivityForResult()方法,能够实现页面关闭的回调
首先我们在第一个Activity中注册注销订阅者事件
其次我们定义订阅者方法接收事件
EventBusAActivity 代码如下

public class EventBusAActivity extends MyBaseActivity {

    @BindView(R.id.tv)
    TextView tv;
    @BindView(R.id.btn)
    Button btn;

    @Override
    public void initUI() {
        setContentView(R.layout.activity_event_bus_a);
        ButterKnife.bind(this);
        //EventBus使用注册
        EventBus
                .getDefault()
                .register(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        //EventBus注销
        EventBus
                .getDefault()
                .unregister(this);
    }

    //定义方法接收消息.
    //threadMode = ThreadMode.MAIN
    @Subscribe()
    public void onEventBusMessage(String msg) {
        String concat = msg.concat("-------->");
        LogUtils.i(concat);
        showToast(concat);
        tv.setText(concat);
    }


    @OnClick(R.id.btn)
    public void onViewClicked() {
        startActivity(EventBusBActivity.class);
    }
}

我们点击按钮,跳转到一个新的Activity
EventBusBActivity 代码如下:

public class EventBusBActivity extends MyBaseActivity {

    @BindView(R.id.et)
    EditText et;
    @BindView(R.id.btn_close)
    Button btnClose;

    @Override
    public void initUI() {
        setContentView(R.layout.activity_event_bus_b);
        ButterKnife.bind(this);
    }

    @OnClick(R.id.btn_close)
    public void onViewClicked() {
        //发送消息
        EventBus
                .getDefault()
                .post(et.getText().toString().concat("eventbus is coming backing!"));
        finish();
    }
}

我们在EventBusBActivity 输入框中输入内容,然后点击按钮发布事件,并关闭当前页面


image.png

此时回到EventBusAActivity中接收到事件并做处理:


image.png

日志输入结果:
EventBusAActivity
.onEventBusMessage(L:48): 
593066063eventbus is coming backing!-------->

ok,到此我们已经实现在页面关闭的时候,使用EventBus发布事件给上个页面!

demo地址

demo源码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,530评论 25 709
  • 1.什么是Activity?问的不太多,说点有深度的 四大组件之一,一般的,一个用户交互界面对应一个activit...
    JoonyLee阅读 5,787评论 2 51
  • 【Android Activity】 什么是 Activity? 四大组件之一,通常一个用户交互界面对应一个 ac...
    Rtia阅读 3,862评论 3 18
  • 准备入场: Prologue-John Williams 02:12 Main Titles - Fantasti...
    ___不二阅读 381评论 0 0
  • 今天媳妇的状态非常不好,基本是吃了吐吐了吃的节奏。吃好后在肚子里停留的时间从没超过半小时,看着她痛苦的样子我心里也...
    秋景001阅读 237评论 2 0