EventBus3.0
EventBus 是一个使用“观察者模式”的、松耦合的开源框架。它使用少量的几句代码就可以实现核心类之间的通讯,帮助我们简化代码、松依赖、加速开发。
1.添加依赖
compile 'org.greenrobot:eventbus:3.0.0'
2.MainActivity代码(发送普通事件、发送粘性事件)
public class MainActivity extends AppCompatActivity { private TextView tv_message; private Button bt_message; private Button bt_subscription; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv_message = (TextView) findViewById(R.id.tv_message); bt_message = (Button) findViewById(R.id.bt_message); bt_subscription = (Button) findViewById(R.id.bt_subscription); bt_message.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,SecondActivity.class); startActivity(intent); } }); bt_subscription.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //注册事件 EventBus.getDefault().register(MainActivity.this); } }); } //普通事件 @Subscribe(threadMode = ThreadMode.POSTING) public void onMoonEvent(MessageEvent messageEvent){ Toast.makeText(this,messageEvent.getMessage(),0).show(); } //粘性事件 @Subscribe(threadMode = ThreadMode.POSTING,sticky = true) public void onMoonEvent(MessageEvent messageEvent){ Toast.makeText(this,messageEvent.getMessage(),0).show(); } @Override protected void onDestroy() { super.onDestroy(); //取消注册事件 EventBus.getDefault().unregister(this); } }
3.SecondActivity
class SecondActivity extends AppCompatActivity{ private Button bt_second; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); bt_second = (Button) findViewById(R.id.bt_second); bt_second.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //发送普通事件 EventBus.getDefault().post(new MessageEvent("传递数据")); finish(); } }); bt_second.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //发送粘性事件 EventBus.getDefault().postSticky(new MessageEvent("传递数据")); finish(); } }); } }
4.MessageEvent
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; } }
浙公网安备 33010602011771号