设计模式:view.post() 责任链模式

今天刚看了一篇文章讲责任链模式的文章。http://www.cnblogs.com/chenssy/p/3332193.html

开发的时候,碰到view.post()方法,读源码的过程中感觉很像责任链模式。

/**
     * <p>Causes the Runnable to be added to the message queue.
     * The runnable will be run on the user interface thread.</p>
     *
     * @param action The Runnable that will be executed.
     *
     * @return Returns true if the Runnable was successfully placed in to the
     *         message queue.  Returns false on failure, usually because the
     *         looper processing the message queue is exiting.
     *
     * @see #postDelayed
     * @see #removeCallbacks
     */
    public boolean post(Runnable action) {
        final AttachInfo attachInfo = mAttachInfo;
        if (attachInfo != null) {
            return attachInfo.mHandler.post(action);
        }
        // Assume that post will succeed later
        ViewRootImpl.getRunQueue().post(action);
        return true;
    }

如果attachInfo不为空,则自己处理,为空则交给ViewRootImpl处理。一时想到了,记一下,欢迎拍砖。

原文地址:https://www.cnblogs.com/ameryzhu/p/6555636.html