您的位置:首页 > 移动开发 > Android开发

android CountDownTimer定时器实现连续单击监听

2016-02-25 11:56 537 查看
1,2秒5连击监听处理器
原理:
第一次单击start一个2秒的定时器,并且把开始时间记录下firstTime,并且累计clickedTimes,每次都检查clickedTimes是否超过5次,是则返回true。定时器2秒后cancel,并初始化,待下次单击操作。
/**
* 2秒5连击监听处理器
*/
public class FiveClickHandler {
final String TAG = FiveClickHandler.class.getSimpleName();

long firstTime = 0;//第一次单击时间
int clickedTimes = 0;//连续单击次数
CountDownTimer fiveClickTimer = new CountDownTimer(2000, 1000) {
@Override
public void onTick(long millisUntilFinished) {

}

@Override
public void onFinish() {
cancelTimer();
}
};

public void startTimer() {
fiveClickTimer.start();
}

public void cancelTimer() {
MyLog.i(TAG, "取消5连击定时器");
firstTime = 0;
clickedTimes = 0;
fiveClickTimer.cancel();
}

public boolean addUpClickedTimes() {//单击
clickedTimes++;
MyLog.i(TAG, "firstTime:" + firstTime);
MyLog.i(TAG, "clickedTimes:" + clickedTimes);
if (firstTime > 0) {
long curTime = System.currentTimeMillis();
if (curTime - firstTime <= 2000) {//2秒内
//连击次数5次以上
if (clickedTimes >= 5) {
cancelTimer();
return true;
} else {
return false;
}
} else {
cancelTimer();
return false;
}
} else {
firstTime = System.currentTimeMillis();
fiveClickTimer.start();
return false;
}

}
}
2,使用该处理器
public void setListener(){tv_launcher_version.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {MyLog.i(TAG,"单击版本");boolean flag = fiveClickHandler.addUpClickedTimes();if(flag){MyLog.i(TAG,"5连击,打开系统设置");gotoActivity("com.android.settings","没找到设置");}return false;}});}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: