Evnetbus使用

来源:互联网 发布:vb.net 入门 编辑:程序博客网 时间:2024/05/22 10:26

1.导入依赖

compile 'org.greenrobot:eventbus:3.0.0'

2.消息类

//发送信息的实体类public class FirstEvent {    private String mMsg;    public FirstEvent(String msg) {        // TODO Auto-generated constructor stub        mMsg = msg;    }    public String getMsg(){        return mMsg;    }}
3.
public class MainActivity extends AppCompatActivity {    Button btn,btn3;    TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //注册EventBus        EventBus.getDefault().register(MainActivity.this);        btn = (Button) findViewById(R.id.btn1);        btn3 = (Button) findViewById(R.id.btn3);        tv = (TextView)findViewById(R.id.tv);        //非粘性事件        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(getApplicationContext(), Main2Activity.class);                startActivity(intent);            }        });        //粘性事件        btn3.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                EventBus.getDefault().postSticky(new FirstEvent("Hello,Everyone,my name is tianmengjie"));                Intent intent = new Intent(getApplicationContext(), Main3Activity.class);                startActivity(intent);            }        });    }    @Subscribe(threadMode = ThreadMode.MAIN,sticky = false)    public void onEventMainThread(FirstEvent event) {        String msg = "收到了消息:" + event.getMsg();        tv.setText(msg);        Toast.makeText(this, msg, Toast.LENGTH_LONG).show();    }    @Override    protected void onDestroy(){        super.onDestroy();        EventBus.getDefault().unregister(this);//反注册EventBus    }}
4.
public class Main2Activity extends AppCompatActivity {    private Button btn2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        btn2 = (Button) findViewById(R.id.btn2);        btn2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                EventBus.getDefault().post(new FirstEvent("Evenbus的普通事件"));                finish();            }        });    }}
5.
public class Main3Activity extends AppCompatActivity {    Button find;    TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main3);        find = findViewById(R.id.find);        textView = findViewById(R.id.main3text);        find.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if (!EventBus.getDefault().isRegistered(Main3Activity.this)) {                    EventBus.getDefault().register(Main3Activity.this);                }            }        });    }    @Subscribe(sticky = true, threadMode = ThreadMode.MAIN)    public void getDate(FirstEvent first) {        textView.setText("姓名:" + first.getMsg());    }}
原创粉丝点击