android屏蔽按钮连续点击的示例代码
android开发中,免不了会有很多按钮的点击,为防止用户故意为之,连续不停的点击按钮,造成短时间内不必要的请求过多,或者 出现多个跳转页面的问题,客户端需要对点击动作 做屏蔽处理,即屏蔽短时间内连续点击。(当然,这样也只是尽可能减少上述问题的出现,手速够快的情况下,还是会出现)
正确代码:
abstract class OnMultiClickListener(private val interval: Long = MULTI_CLICK_INTERVAL): View.OnClickListener {
private companion object {
private const val MULTI_CLICK_INTERVAL = 500L
}
private var mLastClickTime = 0L
abstract fun onMultiClick(v: View?)
final override fun onClick(v: View?) {
v.runSafety {
val currentTime = System.currentTimeMillis()
//注意,这里要使用绝对值
if (abs(currentTime - mLastClickTime) < interval) {
mLastClickTime = currentTime //赋值一
return
}
mLastClickTime = currentTime //赋值二
onMultiClick(v)
}
}
}
注意点:
1、如果间隔时间设置过长,可能会造成视觉上点击卡顿的现象
2、如果修改系统时间,则可能造成时间判断出问题,进而导致按钮点击无响应。故必须用绝对值进行比较。
3、注意两处赋值位置
到此这篇关于android屏蔽按钮连续点击的文章就介绍到这了,更多相关android屏蔽按钮连续点击内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Android MPAndroidChart开源库图表之折线图的实例代码
这篇文章主要介绍了Android MPAndroidChart开源库图表之折线图的实例代码,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2018-05-05
Flutter开发Mac桌面应用实现自动提取生成视频字幕文件
这篇文章主要为大家介绍了Flutter开发Mac桌面应用实现自动提取生成视频字幕文件示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-03-03
Android中加载网络资源时的优化可使用(线程+缓存)解决
Android 中加载网络资源时的优化;基本的思路是线程+缓存来解决,具体解决思路如下,有类似情况的朋友可以参考下哈2013-06-06
android private libraries 中的包源代码添加方法
这篇文章主要介绍了android private libraries 中的包源代码添加方法,方法很简单,看完本文即可学会,需要的朋友可以参考下2015-05-05


最新评论