相关疑难解决方法(0)

使用Otto进行线程之间的通信:它会导致任何问题吗?

我已经Otto在我最新的Android项目中尝试过,它确实简化了对象之间的通信.但是,我不确定Threads与它之间的通信是否存在任何隐藏的问题.

这就是我所做的,创建了一个SingletonBus使用,enum以便可以在任何地方访问总线:

public enum SingletonBus {
    INSTANCE;

    private static String TAG = SingletonBus.class.getSimpleName();

    private Bus bus;

    private boolean paused;

    private final Vector<Object> eventQueueBuffer = new Vector<>();

    private Handler handler = new Handler(Looper.getMainLooper());

    private SingletonBus() {
        this.bus = new Bus(ThreadEnforcer.ANY);
    }

    public <T> void postToSameThread(final T event) {
        bus.post(event);
    }

    public <T> void postToMainThread(final T event) {
        try {
            if(paused) {
                eventQueueBuffer.add(event);
            } else {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        try { …
Run Code Online (Sandbox Code Playgroud)

java multithreading android otto

1
推荐指数
1
解决办法
1798
查看次数

标签 统计

android ×1

java ×1

multithreading ×1

otto ×1