EventBus學習

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

《Google Guava EventBus實例與分析》

相關文章
相關標籤/搜索