解决activity双击跳转两次的问题
2017-12-02 本文已影响0人
刘孙猫咪
在A activity中有一个button,点击button跳转至B activity,如果连续点击button会发现跳B activity会跳两次,从B activity返回到A activity的时候也要返回两次,当然这样的话肯定会影响用户体验,后面在使用微信等主流app的时候,仔细观察了下,微信也存在这种现象,微信开发团队肯定知道这个问题 ,估计他们是觉得不影响正常用户的用户体验就可以,所以就没有解决,这个问题是可以解决,但是解决的同时也会造成应用程序的某些页面的卡顿,估计这也是微信没有解决的一个原因吧;
解决的思路:记录前后两次点击的时间差,同时在activity中重写dispatchTouchEvent()方法,如果时间差小于规定的值,就将该次点击处理掉,也就是让页面不相应该次点击事件:
/**
* 处理多次点击
*/
private static long lastClickTime;
public static boolean isFastDoubleClick() {
long time = System.currentTimeMillis();
long timeD = time - lastClickTime;
lastClickTime = time;
if (timeD >= 0 && timeD <= 500) {
return true;
} else {
lastClickTime = time;
return false;
}
}
处理逻辑可以放到BaseActivty里面
//处理多次点击
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
if (SalesTool.isFastDoubleClick()) {
return true;
}
}
return super.dispatchTouchEvent(ev);
}
这样子就解决掉问题了。