xUtils遇到界面点击无效的bug
2017-07-11 15:27
295 查看
xutils框架一直用得挺顺的,一次开发项目测试改了系统时间后所有注入的点击事件全部无效。巨严重的bug。好在查了源码后发现其实只是一个小逻辑错误,org.xutils.view包下EventListenerManager类是控制注入事件的,查找到事件触发前框架会查询是否重复点击,代码如下
默认QUICK_EVENT_TIME_SPAN两次点击间隔时间是300毫秒,如果用户在应用中点击一个按钮lastClickTime就会记录最后一次的点击时间,这个时候用户修改系统到过去的时间点那么timeSpan 也就是两次点击真实的间隔时间就会一直小于QUICK_EVENT_TIME_SPAN,导致点击时间一直无法执行
所以只要加一个判断就可以解决这个问题,真实间隔时间不可能小于0,这样就避免操作过程中修改系统时间导致计算间隔错误
if (AVOID_QUICK_EVENT_SET.contains(eventMethod)) { long timeSpan = System.currentTimeMillis() - lastClickTime; if (timeSpan < QUICK_EVENT_TIME_SPAN) { LogUtil.d("onClick cancelled: " + timeSpan); return null; } lastClickTime = System.currentTimeMillis(); }
默认QUICK_EVENT_TIME_SPAN两次点击间隔时间是300毫秒,如果用户在应用中点击一个按钮lastClickTime就会记录最后一次的点击时间,这个时候用户修改系统到过去的时间点那么timeSpan 也就是两次点击真实的间隔时间就会一直小于QUICK_EVENT_TIME_SPAN,导致点击时间一直无法执行
if (timeSpan < QUICK_EVENT_TIME_SPAN && timeSpan>0) { LogUtil.d("onClick cancelled: " + timeSpan); return null; } lastClickTime = System.currentTimeMillis();
所以只要加一个判断就可以解决这个问题,真实间隔时间不可能小于0,这样就避免操作过程中修改系统时间导致计算间隔错误
相关文章推荐
- scaleType解决imageView遇到点击之后切换界面再返回,图标变大显示不全的BUG
- Android 使用友盟分享SDK,分享到QQ成功后,遇到app被销毁后,回到此分享界面无法正常点击界面问题。--连QQ都忘记处理的activity状态恢复问题
- jquery点击事件遇到的小bug
- FLASH PLAYER 9.0的一个BUG getURL(url,"_self","POST") 点击无效
- Android中界面切换时卡顿点击无效的另类原因
- iOS -- 界面跳转--常遇到的bug
- android 锁屏界面--屏蔽音量键,达到安全音量时不点击确定后,音量键无效
- flash bug 点击链接无效
- 工作遇到的小bug--------设置match_partent无效
- UItableView 点击cell跳转到其它界面延迟bug
- UItableView 点击cell跳转到其它界面延迟bug
- Notification点击跳转到消息界面返回到主界面Bug解决
- flash bug 点击链接无效
- ios 版本迭代开发中,去重,支付,以及界面遇到的bug(使用到navigation防止界面的self.view坐标发生改变)
- NestedScrollView的bug处理,子view首次点击无效
- android studio 遇到点击run app 无效
- 程序员遇到BUG的解释
- 项目开发中遇到的--Bug知识整理!
- 关于页面上某些点击事件无效的问题
- submit 按钮提交无效 点击无效果 不可用