Android培训
美国上市Android培训机构

400-111-8989

热门课程

Android实用干货分享之防止过快点击

  • 时间:2018-05-11
  • 发布:Android培训
  • 来源:Android开发中文站

Android实用干货分享之防止过快点击

有过连拍的体验吗?在Android手机上进行点击的时候又出现过类似连拍的现象吗?你知道是怎么回事吗?你知道程序中如何防止过快点击吗?不知道,那今天的Android培训就分享给你:

在用户使用 Android 应用的时候,经常会出现过快且多次点击同一按钮的情况,一方面这是因为应用或手机当前有些卡顿,另一方面也可能是由于很多应用并没有设置按钮点击时的 selector 或者其它按钮响应方式(例如点击按钮时按钮放大,常见于游戏),导致用户误认为没有点击到当前按钮,当然,除了相对应的对应用进行优化和设置点击selector以外,我们还可以做一些其它的工作,例如,判断按钮的 onClick 事件在规定事件段内只响应一次(在论坛的搜索功能中,我们常见到每10秒才可以进行一次搜索的设置,这就在一定程度上减少了无效的网络访问量,减轻服务器压力,APP同理),就如下面代码所示:

public final class AppUtils {

private AppUtils() {

}

private static long mLastClickTime;// 用户判断多次点击的时间

public static boolean isFastDoubleClick() {

long time = System.currentTimeMillis();

if (Math.abs(time - mLastClickTime) < 500) {

return true;

}

mLastClickTime = time;

return false;

}

}

btn.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

if (AppUtils.isFastDoubleClick()){

// 进行点击事件后的逻辑操作

}

}

});

另一种方式。。。。 新建一个onclicklistener

public abstract class OnMultiClickListener implements View.OnClickListener{

// 两次点击按钮之间的点击间隔不能少于1000毫秒

private static final int MIN_CLICK_DELAY_TIME = 1000;

private static long lastClickTime;

public abstract void onMultiClick(View v);

@Override

public void onClick(View v) {

long curClickTime = System.currentTimeMillis();

if((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {

// 超过点击间隔后再将lastClickTime重置为当前点击时间

lastClickTime = curClickTime;

onMultiClick(v);

}

}

}

btn.setOnClickListener(new OnMultiClickListener() {

@Override

public void onMultiClick(View v) {

// 进行点击事件后的逻辑操作

}

});

恭喜你阅读完了本文,如果你是一名软件测试工程师,阅读完本文,在测试过程中你就能准确定位此种情况,如果你是一名Android工程师,那你就能在编程过程中成功避免这种情况,避免与软件测试工程师的相杀过程。如果你还有更多Android相关的问题,欢迎你来达内Android培训机构进行了解。

免责声明:内容和图片源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

上一篇:拿走不谢|Android开发中常用到的工具汇总
下一篇:Android培训分享之Android基础知识讲解

Android培训分享之Android基础知识讲解

Android实用干货分享之防止过快点击

拿走不谢|Android全屏幕适配方案

Android实现Wifi热点进行文件传输的功能详解

选择城市和中心
贵州省

广西省

海南省