android EventBus

自己根據http://blog.csdn.net/harvic880925/article/details/40660137學習eventbus,但是我在android studio 中引入


No subscribers registered for event class錯誤


compile 'de.greenrobot:eventbus:2.4.0'
firstactivity
public class EventFirstActivity extends Activity {
    Button btn;
    TextView mes;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.eventbus_first);


        btn = (Button) findViewById(R.id.btn);
        mes = (TextView) findViewById(R.id.text_mes);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // EventBus.getDefault().post("jkdklfksjlkfs");
                //EventBus.getDefault().post(new FirstEvent("調用第一個頁面的eventbus main"));
                Intent intent = new Intent();
                intent.setClass(getApplicationContext(), EventSecondActivity.class);
                startActivity(intent);
            }
        });
    }

    public void onEventMainThread(FirstEvent model) {
        // mes.setText(model.getmMsg());
        //Toast.makeText(this, model.getmMsg(), Toast.LENGTH_SHORT).show();
        System.out.println(model.getmMsg());
    }

    @Override
    protected void onStart() {
        super.onStart();
        EventBus.getDefault().register(this);
    }

    @Override
    protected void onDestroy() {
        EventBus.getDefault().unregister(this);
    }

    @Override
    protected void onStop() {
        super.onStop();
//注意這裏,我開始是寫在這裏,結果出現No subscribers registered for event class
//查找資料發現應該寫在onDestroy否則找不到event

        //EventBus.getDefault().unregister(this);
    }
}
secondactivity
public class EventSecondActivity extends Activity{
    Button btn;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.eventbus_second);
        btn= (Button) findViewById(R.id.btn_sencond);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                EventBus.getDefault().post(new FirstEvent("調用第一個頁面的eventbus main"));
            }
        });
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章