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(); }