Java 添加和删除事件侦听器是否比完全不删除它们更有效?

Java 添加和删除事件侦听器是否比完全不删除它们更有效?,java,android,Java,Android,假设我有一个“开关按钮”和一个正常的“按钮”。 如果开关按钮打开,则正常按钮启用。 否则,如果开关按钮关闭,则正常按钮被禁用 在这种情况下,添加和删除普通按钮的事件侦听器以释放禁用时的内存消耗是否更有效 例如: public void sample() { Switch switchButton = (Switch) findViewById(R.id.sample_switch); switchButton.setOnCheckedChangeListener(new Com

假设我有一个“开关按钮”和一个正常的“按钮”。 如果开关按钮打开,则正常按钮启用。 否则,如果开关按钮关闭,则正常按钮被禁用

在这种情况下,添加和删除普通按钮的事件侦听器以释放禁用时的内存消耗是否更有效

例如:

public void sample() {
    Switch switchButton = (Switch) findViewById(R.id.sample_switch);

    switchButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        Button normalButton = (Button) findViewById(R.id.sample_button);

        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if(isChecked) {
                normalButton.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        //Some codes...
                    }
                });
            } else
                normalButton.setOnClickListener(null);
        }
    });
}

如果它确实节省了内存,那么它将是最小的和恒定的,因此只值得在开发过程的后期阶段进行优化。eventListener在注册时不会降低性能,它所消耗的少量内存可以忽略不计

您可以注销事件的原因是不希望按钮链接到此功能。禁用按钮用于防止按钮激活其链接功能。这是一个细微的差别,在前端开发中,您永远不会从事件中取消注册按钮,因为用户不会单击按钮


回答您的问题,是的,它可能会节省最小的内存位,但由于它只有一个按钮,取消注册将带来的优化规模无法提及。

如问题所述,只有一个开关按钮和一个正常按钮。