时间:2021-05-21
在用户使用 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) { // 进行点击事件后的逻辑操作 } });以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
iOS防止按钮多次点击造成多次响应的方法在日常开发中经常会碰到一种bug就是因为用户快速点击某个按钮,导致页面重复push或者重复发送网络请求。这样的问题既对用
方法一classProgram{[STAThread]staticvoidMain(string[]args){//防止程序多次运行if(!OneInstanc
背景同一条数据被用户点击了多次,导致数据冗余,需要防止弱网络等环境下的重复点击目标通过在指定的接口处添加注解,实现根据指定的接口参数来防重复点击说明这里的重复点
Android手机防止休眠的两种实现方法实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明。一种是在代码里面修改LayoutParams的标
本文实例讲述了Android编程之防止反编译的实现方法。分享给大家供大家参考,具体如下:1.判断程序是否运行在模拟器上booleanisRunningInEmu