Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
来源:互联网 发布:淘宝香港代购 编辑:程序博客网 时间:2024/05/16 06:23
最近遇到Android在界面中重复点击导致多次跳转或打开多个相同界面的问题。这是由于当前界面在点击后,跳转到其他页面,当前页面还未转到后台时,再次触发点击事件导致。网上我主要见到了两种解决方式,一种是设置singletop的flag,不过这种方式在遇到使用startActivityForResult方式启动Activity时不会产生作用,所以我选择的是第二种,设置一个屏蔽机制,及设定在多少时间内,重复点击无效。经过我的非常不严谨的测试(=。=),设置300毫秒左右在现在主流手机上再出现问题的几率已经极小,250毫秒则不能很好的解决这个问题。
网上对于这个方法提供的代码存在逻辑上的问题(至少我看到的是这样),它会导致如果快速点击,则除第一次以外所有的点击都无效,所以我对该方法代码进行了略微的调整。该方法的原理是这样的,用一个long mClickTime记录下点击时间,如果相邻两次点击时间的差小于300ms,则不响应第二次点击,mClickTime不变,若大于300ms,则修改mClickTime为第二次点击的时间。
为了代码重用方便,最好将这个方法加入到一个继承Activity的baseActivity类中,同时设置一个开关,在需要时才打开这个功能,因为经过我的测试,300ms其实也是一个很长的时间,在一些界面中的操作中会降低用户体验,给人以一种系统有些卡顿的感觉。
以下是代码:
/** * time of last click */ private long lastClickTime; /** * switch of limit for click */ private boolean clickLimit = false;
protected void setClickLimit(boolean clickLimit){ this.clickLimit = clickLimit; } private boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTime; if (timeD>300) lastClickTime = time; if (!clickLimit) return timeD < 0; return timeD <= 300; }
0 0
- Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
- 解决Android中多次点击启动多个相同界面的问题
- 解决Android中多次点击启动多个相同界面的问题
- 解决Android中多次点击启动多个相同界面的问题
- Android中多次点击启动多个相同界面的问题
- iOS利用runtime,解决多次点击相同button,导致重复跳转的问题
- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS- 利用runtime,解决多次点击相同button,导致重复跳转的问题
- iOS开发--利用 runtime,解决多次点击相同 button,导致重复跳转的问题
- 解决在Setting界面中打开bluetooth 导致setting界面以外退出问题的过程
- Android 在安装完成界面,点击打开应用程序。在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开。(为了把问题写清楚,标题一定要长长长........)
- Android 在安装完成界面,点击打开应用程序。在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开。(为了把问题写清楚,标题一定要长长长........)
- 完全解决快速连续多次点击button导致跳转多个界面(注:方法从他人博客中看到,稍作修改)
- Android之关于点击多次的导致多个页面问题
- 防止多次快速点击打开多个activity的问题
- 防止多次快速点击打开多个activity的问题
- TableViewCell 点击跳转多个不同的界面
- jQuery live 重复绑定,导致多次执行的解决方式
- HDOJ--2044
- 3、GIT实用教程
- docker 存储池扩容方案
- Java---计算机贷款支付额计算(用对话框实现)
- HDOJ--2045
- Android在界面中重复点击导致多次跳转或打开多个相同界面的问题的解决方式
- Android Studio上编译JNI程序
- HDOJ--2046
- 逆向笔记之汇编(2)
- HDOJ--2047
- [Tips]避免cache中的抖动问题
- HDU 1002 a+b(高精度+java)
- Java基础--String、StringBuffer
- HDOJ--2051