public class Utils {
public static final int DELAY = 1000;
private static long lastClickTime = 0;
public static boolean isNotFastClick(){
long currentTime = System.currentTimeMillis();
if (currentTime - lastClickTime > DELAY) {
lastClickTime = currentTime;
return true;
}else{return false;}
}
}
伪代码。。。写得自己都看不下去了。(捂脸)
拦截短时间的多次点击操作;
设置flag;
尽量优化新起界面的初始化操作。
方案有两种,
方案一: 直接自定义监听器,适用于大量此类操作。
方案二: 直接在方法里拦截,适用于少量此类操作。
方案一:
自定义一个监听器
NoDoubleClickListener,抽象一个onNoDoubleClick方法。用法,在建立监听的时候使用刚刚自定义的监听器,并实现其抽象方法。
方案二:
把方案一的时间差判定方法拿出来。。就行了。。
用法,
按照java的设计原则,推荐第一种方案。
其他监听也是同样的自定义方式。
两个结合处理。判断是否快速点击,再设置跳转页面的启动模式launchModel!
直接在
AndroidManifest.xml中声明Activity的时候,launchMode指定为singleTop,能够解决大部分情况下打开多次的问题了;但是如果你们的QA要是非得狂点的话,还是会出现的.