HandlerThread多层帖差异

时间:2014-07-22 04:48:56

标签: android multithreading thread-safety handler

我真的不明白从更新线程发布到主线程的区别如下:

我在活动的onCreate中有这个:

private HandlerThread updateThread;
private Handler updateHandler;
private Handler mainHandler;

public void onCreate() {
    updateThread = new HandlerThread("Update Thread");
    updateThread.start();

    updateHandler = new Handler(updateThread.getLooper());
    mainHandler = new Handler(Looper.getMainLooper());
}

然后在某处,有这种方法:

public void waitForRefresh(final Runnable r) {
    updateHandler.post(new Runnable() {
        @Override
        public void run() {
            mainHandler.post(r);
        }
    });
}

有人可以解释为什么不能以这种方式完成waitForRefresh方法吗?

public void waitForRefresh(final Runnable r) {
    mainHandler.post(r);
}

为什么我们需要发布到updateHandler并让它发布到mainHandler而不是直接发布到mainHandler?

谢谢!

0 个答案:

没有答案