谁接收消息谁就注册解注册ide
// eventbus
public class EventBusActivity extends Activity { private TextView tv_title; private Button bt_eventbus_send; private Button bt_eventbus_sticky; private TextView tv_eventbus_result; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_event_bus); initView(); initData(); initListener(); } private void initListener() { // 跳转到发送页面
bt_eventbus_send.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(EventBusActivity.this, EventBusSendActivity.class); startActivity(intent); } }); // 发送粘性事件到发送页面
bt_eventbus_sticky.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 2 发送粘性事件
EventBus.getDefault().postSticky(new StickyEvent("我是粘性事件")); // 跳转到发送数据页面
Intent intent = new Intent(EventBusActivity.this, EventBusSendActivity.class); startActivity(intent); } }); } private void initData() { tv_title.setText("EventBus"); // 1注册广播
EventBus.getDefault().register(EventBusActivity.this); } private void initView() { tv_title = (TextView)findViewById(R.id.tv_title); bt_eventbus_send = (Button)findViewById(R.id.bt_eventbus_send); bt_eventbus_sticky = (Button)findViewById(R.id.bt_eventbus_sticky); tv_eventbus_result = (TextView)findViewById(R.id.tv_eventbus_result); } // 5接收消息
@Subscribe(threadMode = ThreadMode.MAIN) public void MesssageEventBus(MessageEvent event){ // 显示接收的消息
tv_eventbus_result.setText(event.name); } @Override protected void onDestroy() { super.onDestroy(); // 2 解注册
EventBus.getDefault().unregister(EventBusActivity.this); } }
// eventbus的发送数据页面
public class EventBusSendActivity extends Activity { private TextView tv_title; private Button bt_eventbus_send_main; private Button bt_eventbus_send_sticky; private TextView tv_eventbus_send_result; boolean isFirstFlag = true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_event_bus_send); initView(); initData(); initListener(); } private void initListener() { // 主线程发送数据按钮点击事件处理
bt_eventbus_send_main.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 4 发送消息
EventBus.getDefault().post(new MessageEvent("主线程发送过来的数据")); // 结束当前页面
finish(); } }); // 接收粘性事件数据按钮的点击事件处理
bt_eventbus_send_sticky.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if(isFirstFlag) { isFirstFlag = false; // 4 注册
EventBus.getDefault().register(EventBusSendActivity.this); } } }); } // 3 接收粘性事件
@Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void StickyEventBus(StickyEvent event){ // 显示接收的数据
tv_eventbus_send_result.setText(event.msg); } private void initData() { tv_title.setText("EventBus发送数据页面"); } private void initView() { tv_title = (TextView)findViewById(R.id.tv_title); bt_eventbus_send_main = (Button)findViewById(R.id.bt_eventbus_send_main); bt_eventbus_send_sticky = (Button)findViewById(R.id.bt_eventbus_send_sticky); tv_eventbus_send_result = (TextView)findViewById(R.id.tv_eventbus_send_result); } @Override protected void onDestroy() { super.onDestroy(); // 5 解注册
EventBus.getDefault().removeAllStickyEvents(); EventBus.getDefault().unregister(EventBusSendActivity.this); } }