直接实现侦听器或在类上实现(性能)

时间:2014-03-11 16:39:22

标签: android performance

这两种情况之间的表现是否存在差异:

情况1

this.pathSelect = (EditText)findViewById(R.id.mainactivity_path_select);
    this.pathSelect.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // do my work
        }
    });

情况2

    private class PathSelectClick implements View.OnClickListener
    {
        @Override
        public void onClick(View v) {
            // do my work
        }
    }

    this.pathSelect = (EditText)findViewById(R.id.mainactivity_path_select);
    this.pathSelect.setOnClickListener(new PathSelectClick());

对于视觉我喜欢使用情况2,这是不是很糟糕?谢谢,全部!

2 个答案:

答案 0 :(得分:1)

没有性能差异

在第一种情况下,您使用匿名内部类并实现接口View.OnClickListener

在第二种情况下,您使用实现接口的类PathSelectClick

检查以下内容以了解何时使用

http://docs.oracle.com/javase/tutorial/java/javaOO/whentouse.html

答案 1 :(得分:0)

不,几乎没有性能差异。见this。但如果会有微小的差异,那么你最喜欢的版本会稍快一些。