我们说我有一个开关按钮'和一个普通的按钮'。 如果打开SWITCH BUTTON,则启用NORMAL BUTTON。 否则,如果关闭SWITCH BUTTON,则禁用NORMAL BUTTON。
在这种情况下,添加和删除NORMAL BUTTON的事件监听器以释放内存消耗是否更有效?
例如:
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);
}
});
}
答案 0 :(得分:3)
如果它实际上确实节省了内存,那么它将是最小的和恒定的,因此只有在开发过程的最后阶段才值得优化。 eventListener在注册时不会降低性能,而且它所占用的内存很少,可以忽略不计。
您可以取消注册事件的原因是您不希望按钮链接到此功能。禁用该按钮用于防止按钮激活其链接功能。这是一个细微差别,在前端开发中,您永远不会从事件中取消注册按钮,以免用户单击按钮。
要回答你的问题,是的,它可能会保存最微小的内存,但由于它只有一个按钮,因此取消注册的优化规模将无法提及。