2016-11-24 42 views
0

我正在开关onCheckedChanged(CompoundButton buttonView, boolean isChecked)方法中工作繁重。即我正在执行Google地图集群管理(基于值过滤集群项目)。Android开关 - 如何在调用onCheckedChangeListener之前切换UI更改

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

我的问题是,我想在Switch完成UI更改(切换+颜色更改)后发生沉重的事情。否则,用户界面非常滞后。 因为我正在处理集群,所以我不能在另一个线程上执行这些繁重的工作,因为集群正在主(UI)线程上绘图。

问:有没有办法在交换机在UI上完成它的事情或延迟onCheckedChange方法执行的方式后,调用onCheckedChange来调用?

回答

0

如果要执行的复选框选择改变一些任务中,你可以使用

`onCheckedChanged(CompoundButton buttonView,布尔器isChecked)

但千万记得每次都将被触发,你的状态改变通过checkbox.setChecked(true)以编程方式复选框。

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

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

谢谢,刚刚在这里找到了同样的参考http://stackoverflow.com/questions/21380951/android-sleep-wait-delay-function。此外,开关需要300ms才能切换。 – KasparTr

相关问题