android 解决按钮快速点击
来源:互联网 发布:虚拟机连接不上网络 编辑:程序博客网 时间:2024/04/30 07:26
有经验的android开发人员一般都会遇到一个按钮被快速点击的时候遇到的问题,特别是有线程存在的情况下,问题很明显。当然不同按钮同时或快速点击的时候也会引发问题。这些问题原因无非就是按钮点击之后还没处理完成,另外一个按钮就开始执行了。因此为了解决这样的问题大家都会想到设置两个按钮之间的时间,当快速点击的时候就不执行。类似代码应该是这样的:
boolean canClick = true;
long lastTime = Comm.stringToLong(AppConfig.Session.get("clicktime"));
if(lastTime != 0L){
long diffTime = System.currentTimeMillis() - lastTime;
if(diffTime < 1000){
canClick = false;
}else{
AppConfig.Session.put("clicktime",System.currentTimeMillis());
}
}else{
AppConfig.Session.put("clicktime",System.currentTimeMillis());
}
这样的限制确实能够防止按钮快速点击引起的问题。但是这里有个问题,就是快速点击的时候,不执行的那个按钮就会像是没反应一样,给人的感觉很不好。因此,这里我用的是另外一种办法。办法其实也不难。就是当你点击按钮的时候推迟一定的时间执行,并记录当前时间,然后等这段时间过后再执行原本要执行的方法体。当快速点击的时候只会执行最后一次点击事件。可能说法会有点绕,下面我直接给出代码,想必大家可以看的懂。
public void onClick(View v) {
AppConfig.Session.put("clicktime",System.currentTimeMillis() );
final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
boolean canClick = false;
lastClickTime = Comm.stringToLong(AppConfig.Session.get("clicktime"))
long diffTime = System.currentTimeMillis() - lastClickTime;
if(diffTime >= 500){
canClick = true;
}
if(canClick){
//TODO
}
}};
Thread thread = new Thread(){
@Override
public void run() {
try {
Thread.sleep(500);
Message msg = Message.obtain();
handler.sendMessage(msg);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
thread.start();
}
有什么问题直接给我留言
- android 解决按钮快速点击
- android专题解决之按钮快速点击重复调用问题
- Android 解决快速点击问题
- android之按钮快速点击问题测试
- Android解决按钮重复点击问题
- Android AlertDialog解决点击按钮立即消失的问题
- Android Listview 按钮点击状态错乱之解决
- Android解决按钮加入到ListView控件中的点击冲突
- 按钮快速点击过滤处理
- android 按钮点击事件
- Android点击按钮打电话
- Android按钮点击事件
- Android按钮点击事件
- iOS:按钮连续点击 按钮快速点击 如何处理
- 解决Android按住空白区域,导致点击其他按钮无法触发点击事件的问题
- 防止按钮多次快速点击,防误触
- Android避免按钮被用户快速多次点击(setEnabled的使用)
- Android安卓关于避免按钮快速多次点击问题解决办法
- Servlet 工作原理解析
- Subversion安装配置指南
- 如何在外网中访问自己在另一个局域网中的某个机器(SSH为例)
- mongodb查询
- Windows下安装配置SubVersion的简明步骤
- android 解决按钮快速点击
- 工欲善其事,必先利其器——HttpStatus Enumeration
- 浅出深入统计学(二)
- SDL Game Development-第2章-4.使用SDL_image库操作更多格式的图片
- 装机折腾之U310装Win7SP1_X64
- HADOOP 2.0 YARN应用程序的执行流程和开发
- 微信5.0公众号运营有6大误区
- 那些年·我们读过的专业书籍
- 那些年·我们读过的专业书籍