Android使用视图的处理程序来运行代码

时间:2017-06-15 17:08:39

标签: java android

我在AOSP中看到有很多代码运行如下:

v.post(new Runnable() {
        @Override
        public void run() {
            // Here comes code
            x += y;
        }
    });

这样做有什么好处而不仅仅是做x += y;

1 个答案:

答案 0 :(得分:0)

当视图附加到主用户界面线程时,此运行将获得调用。看看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);
        }

        // Postpone the runnable until we know on which thread it needs to run.
        // Assume that the runnable will be successfully placed after attach.
        getRunQueue().post(action);
        return true;
    }