postInvalidate,postInvalidateDelayed,invalidate

来源:互联网 发布:国际学校知乎 编辑:程序博客网 时间:2024/06/16 07:48

传承者(Inheritors)

刷新UI

postInvalidate()其实内部调用的是postInvalidateDelayed(0),也就是不延迟

  /**     * <p>Cause an invalidate to happen on a subsequent cycle through the event loop.     * Use this to invalidate the View from a non-UI thread.</p>     *     * <p>This method can be invoked from outside of the UI thread     * only when this View is attached to a window.</p>     *     * @see #invalidate()     * @see #postInvalidateDelayed(long)     */    public void postInvalidate() {        postInvalidateDelayed(0);    }
  /**     * <p>Cause an invalidate to happen on a subsequent cycle through the event     * loop. Waits for the specified amount of time.</p>     *     * <p>This method can be invoked from outside of the UI thread     * only when this View is attached to a window.</p>     *     * @param delayMilliseconds the duration in milliseconds to delay the     *         invalidation by     *     * @see #invalidate()     * @see #postInvalidate()     */    public void postInvalidateDelayed(long delayMilliseconds) {        // We try only with the AttachInfo because there's no point in invalidating        // if we are not attached to our window        final AttachInfo attachInfo = mAttachInfo;        if (attachInfo != null) {            attachInfo.mViewRootImpl.dispatchInvalidateDelayed(this, delayMilliseconds);        }    }
invalidate 内部调用的是invalidate(true)
 /**     * Invalidate the whole view. If the view is visible,     * {@link #onDraw(android.graphics.Canvas)} will be called at some point in     * the future.     * <p>     * This must be called from a UI thread. To call from a non-UI thread, call     * {@link #postInvalidate()}.     */    public void invalidate() {        invalidate(true);    }
0 0
原创粉丝点击