“EventBus 传递数据到新 Activity”的版本间差异

来自Silica Library | 間奏時光
跳到导航 跳到搜索
(创建页面,内容为“Category:Android 2020-05-21 16:28 == 要点 ==   1. 无需接受参数的地方不需要 <code>register</code> 和 <code>unregister</code>;<br>   2.…”)
 
 
(未显示同一用户的1个中间版本)
第5行: 第5行:
   1. 无需接受参数的地方不需要 <code>register</code> 和 <code>unregister</code>;<br>
   1. 无需接受参数的地方不需要 <code>register</code> 和 <code>unregister</code>;<br>
   2. 官方文档是在 <code>onStart()</code> 和 <code>onStop()</code> 中 <code>register</code> 和 <code>unregister</code>;<br>
   2. 官方文档是在 <code>onStart()</code> 和 <code>onStop()</code> 中 <code>register</code> 和 <code>unregister</code>;<br>
   3. 已经没有 <code>registerSticky()</code> 了。<br>
   3. 传递数据到新 Activity 时,因为新 Activity 还没注册,所以为了能够 <code>先传递数据再注册</code>,使用 <code>postSticky()</code>;<br>
  4. 已经没有 <code>registerSticky()</code> 了。<br>


== 版本 ==
== 版本 ==

2020年5月21日 (四) 08:35的最新版本

2020-05-21 16:28

要点

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