设定连续两次点击的时间差在2s内为有效。
1. 通过辅助标志位和用sendEmptyMessageDelayed方法来进行更新的方式:
private static boolean exited = false;
mBackButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
exit();
}
});exit方法定义:
private void exit() {
if (exited) {//第一次点击后的2s内,exited是为true的
finish();
return;
} else {
exited = true;//如果是第一次点击,exited置为true
Toast.makeText(getApplicationContext(), "再次点击退出支付", Toast.LENGTH_LONG).show();
mHandler.sendEmptyMessageDelayed(0, 2000);//2s后再将exited置为回为false
}
}
handleMessage对于 static Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
int type = msg.what;
switch (type) {
case 0 :
exited = false;
break;
default :
break;
}
}
};方法二:记录前后两次点击的时间差
private long lastClickTime;//用于记录上次的点击时间 private void exit() {
if (System.currentTimeMillis() - lastClickTime > 2000) {
Toast.makeText(getApplicationContext(), "再次点击 退出支付", Toast.LENGTH_LONG).show();
lastClickTime = System.currentTimeMillis();
} else {
finish();
}
}如果前后两次的时间差在2s内,退出;否则更新lastClickTime。
本文介绍了如何通过辅助标志位和使用sendEmptyMessageDelayed方法来实现用户在2秒内连续点击按钮后触发退出操作的功能。同时,还提供了另一种通过记录前后两次点击时间差的方法进行实现,旨在提升用户体验并防止误操作。
675

被折叠的 条评论
为什么被折叠?



