雙擊退出應(yīng)用
long firstPressTime = 0;
/**
* 雙擊返回鍵退出應(yīng)用
*/
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);
}
}
雙擊響應(yīng)事件
利用Handler控制點(diǎn)擊事件
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 {//單擊事件
//發(fā)送0.31s的延時(shí)message存崖,便于區(qū)分單雙擊事件
handler.sendEmptyMessageDelayed(2,310);
}
}
});