Android中View内部代码探析

来源:互联网 发布:linux下类似fildder 编辑:程序博客网 时间:2024/06/06 09:26

一般研究源代码都是以问答为切入点的。


1. View类的performClick和callOnClick有什么区别?

    /**     * Call this view's OnClickListener, if it is defined.  Performs all normal     * actions associated with clicking: reporting accessibility event, playing     * a sound, etc.     *     * @return True there was an assigned OnClickListener that was called, false     *         otherwise is returned.     */         public boolean performClick() {        sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_CLICKED);        ListenerInfo li = mListenerInfo;        if (li != null && li.mOnClickListener != null) {            playSoundEffect(SoundEffectConstants.CLICK);            li.mOnClickListener.onClick(this);            return true;        }        return false;    }    /**     * Directly call any attached OnClickListener.  Unlike {@link #performClick()},     * this only calls the listener, and does not do any associated clicking     * actions like reporting an accessibility event.     *     * @return True there was an assigned OnClickListener that was called, false     *         otherwise is returned.     */    public boolean callOnClick() {        ListenerInfo li = mListenerInfo;        if (li != null && li.mOnClickListener != null) {            li.mOnClickListener.onClick(this);            return true;        }        return false;    }



原创粉丝点击