在项目中需要点击按钮,进行发送udp广播,从而对服务器返回的数据进行显示,操作等;然而服务器访问是耗时操作,如果快速点击按钮,可能导致数据更新速度跟不上,今儿程序崩溃;解决办法如下;
我们每点击一次按钮,就记录下当前时间,如果前后两次时间差小于某个值(自己设定),就不进行逻辑操作,不发送广播;
public static long lastClickTime;
public synchronized static boolean isFastClick() {
long time = System.currentTimeMillis();
if ( time - lastClickTime < 1000) {
return true;
}
lastClickTime = time;
return false;
}
//扫描当前设备
scan.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//判断是否快速点击按钮
if (Tool.isFastClick()) {
return ;
}
device.clear();
adapter.notifyDataSetChanged();
smt.putMsg(searchCode); //发送广播
}
});