EventBus
来源:互联网 发布:为什么app连不上网络 编辑:程序博客网 时间:2024/06/03 20:42
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); }}
阅读全文
0 0
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- EventBus
- Eventbus
- EventBus
- EventBus
- EventBus
- EventBus
- java 针对图像进行缩放(有损的)
- 【学以致用】android功能实现2---UIautomator 2.0(1)
- 第二次实验
- java并发编程实战-First part
- 软件地址
- EventBus
- SSMA
- Java继承中的构造方法
- Java中的控制语句
- jsp页面利用get方式提交到后台的数据为乱码格式的解决办法
- 面向对象(下)
- vim中末行去掉^M
- 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Ex
- 【数据结构】二叉树!!!