双击退出应用
long firstPressTime = 0;
/**
* 双击返回键退出应用
*/
public void onBackPressed(){
long now = System.currentTimeMillis();
if ((now - firstPressTime) > 2000){
Snackbar snackbar = Snackbar.make(getCurrentFocus(),"再按一次退出",Toast.LENGTH_SHORT);
setSnackbarColor(snackbar,Color.BLUE,Color.WHITE);
snackbar.show();
firstPressTime = now;
}else {
finish();
System.exit(0);
}
}
双击响应事件
利用Handler控制点击事件
long firstPressTime = 0;
long mNow = 0;
final Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 1:
Snackbar.make(getCurrentFocus(),"双击事件",Snackbar.LENGTH_SHORT).show();
break;
case 2:
Snackbar.make(getCurrentFocus(),"单击事件",Snackbar.LENGTH_SHORT).show();
break;
}
}
};
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
firstPressTime=mNow;
mNow= System.currentTimeMillis();
if (mNow - firstPressTime < 300){//双击事件
//先移除消息栈里面的单击消息
handler.removeMessages(2);
handler.sendEmptyMessage(1);
mNow= 0;
}else {//单击事件
//发送0.31s的延时message,便于区分单双击事件
handler.sendEmptyMessageDelayed(2,310);
}
}
});