单击按钮后如何查看持续时间

时间:2015-12-15 04:30:25

标签: android handler runnable ontouchlistener android-timer

我是JavaAndroid的新手,我想在我的ACTION_UP事件中设置一个时间计数器,并在我执行其他事件时取消计时器。我怎么能基本上为它设置一个计时器并停止并重置其他事件的计时器?

3 个答案:

答案 0 :(得分:1)

对于CountDownTimer这里我已经开始了30秒的时间自动收报机

CountDownTimer countDownTimer;
TextView tvTicker = (TextView) findViewById(R.id.tvTicker);

public void startClicked(View view) { //When button start is clicked

    countDownTimer = new CountDownTimer(30000, 1000) {

        public void onTick(long millisUntilFinished) {
            tvTicker.setText("seconds remaining: " + millisUntilFinished / 1000);
//Do some stuff here for saving the duration to a variable or anything else as your requirements
        }

        public void onFinish() {
            tvTicker.setText("done!");
        }
    }.start();
}

方法说明

CountDownTimer(long millisInFuture, long countDownInterval)

millisInFuture = 以毫秒为单位的时间

countDownInterval = 以毫秒为单位的间隔

现在您可以使用这些方法进行其他操作。

countDownTimer.cancel(); //Cancel the countdown.
countDownTimer.onFinish() //Callback fired when the time is up.
countDownTimer.onTick(long millisUntilFinished); //Callback fired on regular `interval. millisUntilFinished is The amount of time until finished.`

答案 1 :(得分:1)

计时器开始时间。

在启动计时器点击事件中设置此项。

Date startDate = new Date();
long startTime = 0;
startTime = startDate.getTime();

将startTime存储在全局变量中,以便稍后可以使用该变量。

计时器结束时间。

在停止计时器点击事件中设置此项。

Date endDate = new Date();
long endTime = 0;
endTime = endDate.getTime();

现在毫秒获得时差

long timeDiff = endTime - startTime;

答案 2 :(得分:0)

你必须尝试这个

public boolean onTouchEvent(MotionEvent event) {
    boolean touch;
        switch(event.getAction()){
            case MotionEvent.ACTION_DOWN:
                touch = false;
                break;
            case MotionEvent.ACTION_UP:
                touch = true;
                // Code for Timer
                break;
        }
    return true;
    }

您必须在此代码中编写处理程序,并在其他事件上重置处理程序。 处理程序的代码

new Handler().postDelayed(new Runnable() {
        public void run() {
            //Your Task                   
        }
    }, TIME);