EventBus 传递数据到新 Activity
跳到导航
跳到搜索
2020-05-21 16:28
要点
1. 无需接受参数的地方不需要 register
和 unregister
;
2. 官方文档是在 onStart()
和 onStop()
中 register
和 unregister
;
3. 传递数据到新 Activity 时,因为新 Activity 还没注册,所以为了能够 先传递数据再注册
,使用 postSticky()
;
4. 已经没有 registerSticky()
了。
版本
3.2.0
MainActivity
binding.btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { EventBus.getDefault().postSticky("Silica"); // 注意:使用 postSticky() startActivity(new Intent(MainActivity .this, SecondActivity.class)); } });
SecondActivity
@Override public void onStart() { super.onStart(); EventBus.getDefault().register(this); } @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void onEvent(String event) { binding.tv.setText(event); // 接收到的 event 就是 String 的 "Silica" } @Override public void onStop() { EventBus.getDefault().unregister(this); super.onStop(); }