Message
public interface Message {
public void click(String message);
}
MessageEvent
public class MessageEvent {
public boolean tag;
public MessageEvent(boolean tag){
this.tag = tag;
}
public boolean isTag() {
return tag;
}
public void setTag(boolean tag) {
this.tag = tag;
}
}
EventListener
import java.util.ArrayList;
import java.util.List;
/**
* Created by muhanxi on 17/11/29.
*/
public class EventListener {
private static EventListener instance = null ;
private List<Message> list = new ArrayList();
private EventListener(){
}
public static EventListener getInstance(){
if(instance == null){
synchronized (EventListener.class){
if(instance == null){
instance = new EventListener();
}
}
}
return instance;
}
/**
* 注册
* @param message
*/
public void register(Message message){
list.add(message);
}
public void unRegister(Message message){
list.remove(message);
}
/**
* 发送
*/
public void post(String msg){
for (Message message : list){
message.click(msg);
}
}
}
Main8Activity
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;
import android.widget.Toast;
import com.example.muhanxi.frescodemo.R;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class Main8Activity extends AppCompatActivity implements Message {
@BindView(R.id.btn8)
Button btn8;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main8);
ButterKnife.bind(this);
EventBus.getDefault().register(this);
EventListener.getInstance().register(this);
// EventListener.getInstance().
// Executor executor = Executors.
}
// ASYNC 异步 表示订阅者所在子线程
//BACKGROUND 后台线程
@Subscribe
public void onMessageEvent(MessageEvent event){
System.out.println("event Main8Activity = " + event.isTag());
System.out.println(Thread.currentThread().getName());
// EventBus.getDefault().re
}
@OnClick(R.id.btn8)
public void onViewClicked() {
startActivity(new Intent(this,Main9Activity.class));
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Override
public void click(String msg) {
Toast.makeText(this, "message", Toast.LENGTH_SHORT).show();
}
}
Main9Activity
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import com.example.muhanxi.frescodemo.R;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class Main9Activity extends AppCompatActivity {
@BindView(R.id.btn8)
Button btn8;
@BindView(R.id.btn81)
Button btn81;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main9);
ButterKnife.bind(this);
}
@OnClick({R.id.btn8, R.id.btn81})
public void onViewClicked(View view) {
switch (view.getId()) {
case R.id.btn8:
// EventBus.getDefault().post(new MessageEvent(true));
EventListener.getInstance().post("1");
// new Thread(new Runnable() {
// @Override
// public void run() {
// EventBus.getDefault().postSticky(new MessageEvent(true));
//
// }
// }).start();
break;
case R.id.btn81:
startActivity(new Intent(this,Main10Activity.class));
break;
default:
break;
}
}
}
Main10Activity
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import com.example.muhanxi.frescodemo.R;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
public class Main10Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main10);
EventBus.getDefault().register(this);
// MessageEvent event = EventBus.getDefault().getStickyEvent(MessageEvent.class);
// EventBus.getDefault().removeStickyEvent(event);
EventBus.getDefault().removeStickyEvent(MessageEvent.class);
}
@Subscribe(sticky = true)
public void onMessageEvent(MessageEvent event){
System.out.println("event Main10Activity = " + event.isTag());
}
@Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
}