依赖:
compile 'org.greenrobot:eventbus:3.1.1'
实现功能: 当击btn_try按钮的时候,跳到第二个Activity, 当点击第二个activity上面的First Event按钮的时候向第一个Activity发送消息 ,当第一个Activity收到消息后 ,在textview中显示 1. //ThreadMode.MAIN表示这个方法在主线程中执行(适合做异步加载,可以将子线程加载到数据直接设置到UI界面里) 2 //ThreadMode.POSTING表示该方法和消息发送方在同一个线程. 3. /*ThreadMode.ASYNC也表示在后台执行(也就是子线程执行),可以异步并发处理 (适用于多个线程任务处理,内部有线程池管理,比如请求网络时,用这个方法,他会自动创建线程去请求) 无论发布者是在子线程还是主线程,该方法都会创建一个子线程,在子线程执行.*/ 4.//ThreadMode.BACKGROUND表示该方法在后台运行(也就是子线程),不能够并发处理 //如果发布者在子线程,那么该方法就在子线程执行 //如果发布者在主线程,那么该方法就会创建一个子线程,在子线程运行. ----------------------代码-----------------------public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button toaozhuan; private TextView tv_title; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //获取控件 initView(); //eventBus进行注册 EventBus.getDefault().register(this); } private void initView() { toaozhuan = (Button) findViewById(R.id.toaozhuan); tv_title = (TextView) findViewById(R.id.tv_title); toaozhuan.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.toaozhuan: Intent intent =new Intent(this,Main2Activity.class); startActivity(intent); break; } } //接收消息定义在哪个线程显示 @Subscribe(threadMode = ThreadMode.MAIN) public void Meassage(EventBusMeassage eventBusMeassage){ tv_title.setText(eventBusMeassage.Meassage); } @Override protected void onDestroy() { super.onDestroy(); //取消注册 EventBus.getDefault().unregister(this); } }---------------------Main2----------------------------
public class Main2Activity extends AppCompatActivity implements View.OnClickListener { private Button send; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); initView(); } private void initView() { send = (Button) findViewById(R.id.send); send.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.send: //点击按钮向别的activity里发送消息 //使用EventBus发送事件,使用Post方法,参数也必须是EventBus消息对且要和接收的保持一致 EventBus.getDefault().post(new EventBusMeassage("发送消息给主页面")); finish(); break; } } }----------------------------------------------------------public class EventBusMeassage { public String Meassage; public EventBusMeassage(String meassage) { Meassage = meassage; } }