Git位置https://github.com/greenrobot/EventBusphp
使用起來很方便:
1. Implement any number of event handling methods in the subscriber:
public void onEvent(AnyEventType event) {}
2. Register subscribers:
eventBus.register(this);
3. Post events to the bus:
eventBus.post(event);
4. Unregister subscriber:
eventBus.unregister(this);git
5. public void onEventMainThread(EventType event)方法github
兩個Activity直接的使用ide
在第一個Activity的Code以下:wordpress
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); EventBus.getDefault().register(this); textView = (TextView)findViewById(R.id.textView); Button btn_try = (Button)findViewById(R.id.btn_try); btn_try.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getApplicationContext(), SecondActivity.class); startActivity(intent); } }); } @Subscribe public void onEventMainThread(EventType event){ textView.setText(event.getMessage()); Toast.makeText(this,event.getMessage(),Toast.LENGTH_LONG).show(); }
OnDestory方法源碼分析
@Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); }
在第二個Activity中使用post
Button btn_first_event = (Button)findViewById(R.id.btn_first_event); btn_first_event.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EventBus.getDefault().post(new EventType("FistEvent btn cliced")); } });
具體實現可參考。this
一、《EventBus使用詳解(一)——初步使用EventBus》google
二、《EventBus使用詳解(二)——EventBus使用進階》spa
其它參考:
《Android解耦庫EventBus的使用和源碼分析》:http://blog.csdn.net/yuanzeyao/article/details/38174537
原理很重要哦。
《EventBus的使用初試》:http://blog.csdn.net/pp_hdsny/article/details/14523561
《EventBusExplained 》:https://code.google.com/p/guava-libraries/wiki/EventBusExplained