EventBus是针一款对Android的发布/订阅事件总线。它可以让我们很轻松的实现在Android各个组件之间传递消息,并且代码的可读性更好,耦合度更低。
依赖:compile ‘org.greenrobot:eventbus:3.0.0’
- 1.1MainAcivity主方法
public class MainActivity extends AppCompatActivity {
//注解
@ViewInject(R.id.onbut)
private Button but;
private TextView ontv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ontv = (TextView) findViewById(R.id.ontv);
//注册EventBus
EventBus.getDefault().register(this);
}
public void onButton(View v){
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
}
//特别重要 @Subscribe(threadMode = ThreadMode.MAIN)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventThread(FirstEvent event){
String msg = "onEventThread已经收到了消息"+event.getmEvent();
ontv.setText(msg);
Toast.makeText(this,msg,Toast.LENGTH_SHORT).show();
}
@Override
protected void onDestroy() {
super.onDestroy();
//反注册EventBus
EventBus.getDefault().unregister(this);
}
}
- 1.2、SecondeActivity第二个页面
public class SecondActivity extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
}
public void onPlay(View v){
EventBus.getDefault().post(new FirstEvent("FirstEvent btn clicked222"));
}
}
1.3、FirstEvent的一个方法
public class FirstEvent {
private String mEvent;
public String getmEvent() {
return mEvent;
}
public void setmEvent(String mEvent) {
this.mEvent = mEvent;
}
public FirstEvent(String mEvent){
this.mEvent = mEvent;
}
}