Android 开关 - 如何在调用 onCheckedChangeListener 之前切换 UI 变化

Android Switch - how to toggle UI change before calling onCheckedChangeListener

我正在使用 Switch onCheckedChanged(CompoundButton buttonView, boolean isChecked) 方法做繁重的工作。也就是说,我正在做 Google 地图集群管理(根据值过滤集群项目)。

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

我的问题是,我希望在 Switch 完成其 UI 更改(切换 + 颜色更改)后发生繁重的事情。否则 UI 会很慢。 因为我正在处理集群,所以我不能在另一个线程上做这些繁重的事情,因为集群正在主 (UI) 线程上绘制。

问题:有没有办法在 Switch 在 UI 上完成它的事情后处理要调用的 onCheckedChange 或延迟 onCheckedChange 方法执行的方法?

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

`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);