Android Switch - 如何在调用onCheckedChangeListener之前切换UI更改

时间:2016-11-24 13:12:31

标签: android android-switch oncheckedchanged

我在Switch onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法中做了大量工作。即我正在进行谷歌地图群集管理(根据值筛选群集项目)。

@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
    // memory heavy stuff starts happening here
}

我的问题是,我希望在Switch完成UI更改(切换+颜色更改)之后发生重要事情。否则UI非常迟钝。 由于我正在处理集群,所以我无法在另一个线程上执行这些繁重的工作,因为集群正在绘制主(UI)线程。

问题:在Switch完成UI上的事情或延迟执行onCheckedChange方法的方法之后,有没有办法让onchackedChange被调用?

1 个答案:

答案 0 :(得分:0)

如果您想要更改复选框选择执行某项任务,可以使用

`onCheckedChanged(CompoundButton buttonView,boolean isChecked)

但请记住,每次通过checkbox.setChecked(true)以编程方式更改复选框的状态时都会触发此操作。

我建议你在复选框上使用onClickListener,只有在用户点击按钮时才会收到通知(但这完全取决于你的要求) 如果您想延迟复选框的执行,请以这种方式在处理程序块中编写代码。

  new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
// memory heavy stuff starts happening here
        }
    },DELAY_IN_MILLISECONDS);