我真的不明白从更新线程发布到主线程的区别如下:
我在活动的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?
谢谢!