1.导入依赖
compile 'org.greenrobot:eventbus:3.0.0'
2.消息类
3.//发送信息的实体类 public class FirstEvent { private String mMsg; public FirstEvent(String msg) { // TODO Auto-generated constructor stub mMsg = msg; } public String getMsg(){ return mMsg; } }
public class MainActivity extends AppCompatActivity { Button btn,btn3; TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //注册EventBus EventBus.getDefault().register(MainActivity.this); btn = (Button) findViewById(R.id.btn1); btn3 = (Button) findViewById(R.id.btn3); tv = (TextView)findViewById(R.id.tv); //非粘性事件 btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), Main2Activity.class); startActivity(intent); } }); //粘性事件 btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().postSticky(new FirstEvent("Hello,Everyone,my name is tianmengjie")); Intent intent = new Intent(getApplicationContext(), Main3Activity.class); startActivity(intent); } }); } @Subscribe(threadMode = ThreadMode.MAIN,sticky = false) public void onEventMainThread(FirstEvent event) { String msg = "收到了消息:" + event.getMsg(); tv.setText(msg); Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); } @Override protected void onDestroy(){ super.onDestroy(); EventBus.getDefault().unregister(this);//反注册EventBus } }4.
public class Main2Activity extends AppCompatActivity { private Button btn2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); btn2 = (Button) findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().post(new FirstEvent("Evenbus的普通事件")); finish(); } }); } }5.
public class Main3Activity extends AppCompatActivity { Button find; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main3); find = findViewById(R.id.find); textView = findViewById(R.id.main3text); find.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!EventBus.getDefault().isRegistered(Main3Activity.this)) { EventBus.getDefault().register(Main3Activity.this); } } }); } @Subscribe(sticky = true, threadMode = ThreadMode.MAIN) public void getDate(FirstEvent first) { textView.setText("姓名:" + first.getMsg()); } }