EventBus3.0使用筆記.md

事件總線這個其實沒什麼好說的,除了已經ondestroy的fragment或者activity不能接受外,只要定義了的都能接收消息
代碼如下,需要注意的一點就是接收的監聽事件必須用public修飾並且加上@Subscribe註解

compile 'org.greenrobot:eventbus:3.0.0'
public class MainActivity extends Activity {
    private TextView textView;
    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = findViewById(R.id.tv);

        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent();
                intent.setClass(MainActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });

        EventBus.getDefault().register(this);
    }

    @Subscribe
    public void onMessageEvent(MessageEvent messageEvent){
        textView.setText(messageEvent.getMessage());
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        EventBus.getDefault().unregister(this);
    }
}
public class SecondActivity extends AppCompatActivity {
    private TextView tv_receive;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        tv_receive = findViewById(R.id.tv_receive);
        tv_receive.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EventBus.getDefault().post(new MessageEvent("發送成功"));
                finish();
            }
        });

    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
    }
}
public class MessageEvent {

    private String message;

    public MessageEvent(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章