EventBus 传递数据到新 Activity

来自Silica Library | 間奏時光
Silica讨论 | 贡献2020年5月21日 (四) 08:33的版本 (创建页面,内容为“Category:Android 2020-05-21 16:28 == 要点 ==   1. 无需接受参数的地方不需要 <code>register</code> 和 <code>unregister</code>;<br>   2.…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

2020-05-21 16:28

要点

  1. 无需接受参数的地方不需要 registerunregister
  2. 官方文档是在 onStart()onStop()registerunregister
  3. 已经没有 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();
}