导入依赖
implementation 'org.greenrobot:eventbus:3.1.1'
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
写一个类MessageEvent
/**
* 定义事件
*/
public class MessageEvent {
/* Additional fields if needed */
private String message;
public MessageEvent(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
}
MainActivity里面
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private static final String TAG = "MainActivity";
/**
* 跳转到Second
*/
private Button mBt;
/**
* 发送消息
*/
private Button mBt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
//注册
EventBus.getDefault().register(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
//注销
EventBus.getDefault().unregister(this);
}
/*@Subscribe(threadMode = ThreadMode.BACKGROUND)
public void onMessageEvent(MessageEvent event) {
Log.e("MainActivity", "当前线程:" + Thread.currentThread().getName());
*//* Do something *//*
Toast.makeText(MainActivity.this, "onMessageEvent接收到了消息", Toast.LENGTH_SHORT).show();
}*/
@Subscribe(threadMode = ThreadMode.POSTING, priority = 1)
public void onMessageEvent1(MessageEvent event) {
Log.i(TAG, "onMessageEvent1(), message is " + event.getMessage());
}
@Subscribe(threadMode = ThreadMode.POSTING, priority = 2)
public void onMessageEvent2(MessageEvent event) {
Log.i(TAG, "onMessageEvent2(), message is " + event.getMessage());
// 取消事件
EventBus.getDefault().cancelEventDelivery(event);
}
@Subscribe(threadMode = ThreadMode.POSTING, priority = 3)
public void onMessageEvent3(MessageEvent event) {
Log.i(TAG, "onMessageEvent3(), message is " + event.getMessage());
}
@Subscribe(threadMode = ThreadMode.POSTING, priority = 4)
public void onMessageEvent4(MessageEvent event) {
Log.i(TAG, "onMessageEvent4(), message is " + event.getMessage());
}
@Subscribe(threadMode = ThreadMode.POSTING, priority = 5)
public void onMessageEvent5(MessageEvent event) {
Log.i(TAG, "onMessageEvent5(), message is " + event.getMessage());
}
private void initView() {
mBt = (Button) findViewById(R.id.bt);
mBt.setOnClickListener(this);
mBt2 = (Button) findViewById(R.id.bt2);
mBt2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.bt:
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
break;
case R.id.bt2:
new Thread(new Runnable() {
@Override
public void run() {
Log.e("MainActivity", "当前线程:" + Thread.currentThread().getName());
EventBus.getDefault().postSticky(new MessageEvent("dsfs"));
}
}).start();
break;
}
}
}
SecondActivity里面
public class SecondActivity extends AppCompatActivity implements View.OnClickListener {
/**
* 发送消息
*/
private Button mBt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// EventBus.getDefault().register(this);
initView();
}
@Override
protected void onDestroy() {
super.onDestroy();
// EventBus.getDefault().unregister(this);
}
private void initView() {
mBt = (Button) findViewById(R.id.bt);
mBt.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.bt:
new Thread(new Runnable() {
@Override
public void run() {
Log.e("SecondActivity", "当前线程:" + Thread.currentThread().getName());
EventBus.getDefault().post(new MessageEvent("second 发送的消息"));
}
}).start();
break;
}
}
}
butterknife
写一个ButterActivity
public class ButterActivity extends AppCompatActivity {
@BindView(R.id.tv)
TextView mTv;
@BindView(R.id.bt)
Button mBt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_butter);
ButterKnife.bind(this);
}
@OnClick({R.id.tv, R.id.bt})
public void onClick(View v) {
switch (v.getId()) {
default:
break;
case R.id.tv:
break;
case R.id.bt:
break;
}
}
}