设定连续两次点击的时间差在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。