android: 用eventbus传递消息

一,安装第三方库:

库地址:

https://mvnrepository.com/artifact/org.greenrobot/eventbus

编辑build.gradle,

添加以下内容:

    // https://mvnrepository.com/artifact/org.greenrobot/eventbus
    implementation 'org.greenrobot:eventbus:3.3.1'

然后点击 Sync Now

二,代码:

1,接收的activity


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);

        //获取默认的EventBus对象(单例),并把当前对象注册为Subscriber。
        //注意:当销毁当前实例的时候必须注销这个Subscriber。一般与Activity的生命周期绑定
        EventBus.getDefault().register(this);
    }

    //activity退出时要解绑eventbus的订阅
    @Override
    protected void onDestroy(){
        super.onDestroy();
        //注销当前Subscriber
        EventBus.getDefault().unregister(this);
    }

    //接收消息的方法
    @Subscribe
    public void onEvent(MessageModel event){
        System.out.println("接收到了消息");
        System.out.println("id:"+event.getId());
        System.out.println("message:"+event.getMessage());
    }

}

2,发送的activity

        //给按钮增加点击事件(发送消息)
        Button myButton = findViewById(R.id.savebutton);
        myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 处理点击事件,发送消息
                EventBus.getDefault().post(new MessageModel(33,"王富贵"));
                System.out.println("点击完成");
            }
        });

三,测试效果:

 

posted @ 2025-05-10 08:54  刘宏缔的架构森林  阅读(19)  评论(0)    收藏  举报