解决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);
}

这样子就解决掉问题了。

上一篇下一篇

猜你喜欢

热点阅读