从bundle获取毫秒值并将其传递给countdowntimer Java / Android

时间:2015-11-13 08:35:38

标签: java android countdowntimer

这就是我现在正在做的事情。我从当前活动中的另一个活动(如下面的

)获取值(以毫秒为单位)
Bundle extras = getIntent().getExtras();
    if (extras != null) {
        final long getTimeInMili=extras.getLong("timeInMiliSeconds",0);
        Log.e("Got Time in mili : ", ""+getTimeInMili);

然后,我正在使用如下所示的countdownTimer类

final CounterClass countDownTimer = new CounterClass(getTimeInMili, 1000);
countDownTimer.start();

这是我的CounterClass

public class CounterClass extends CountDownTimer {

    /**
     * @param millisInFuture    The number of millis in the future from the call
     *                          to {@link #start()} until the countdown is done and {@link #onFinish()}
     *                          is called.
     * @param countDownInterval The interval along the way to receive
     *                          {@link #onTick(long)} callbacks.
     */
    public CounterClass(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onTick(long millisUntilFinished) {

        long millis = millisUntilFinished;
        String hms = String.format("%02d:%02d:%02d",
                TimeUnit.MILLISECONDS.toHours(millis),
                TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
                TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
        );
        Log.e("Timer", hms);
        timer.setText(hms);

    }

我做了一些日志记录,问题似乎是一旦onTick执行,getTimeinMili的值就会变为零。所以我的问题是

  1. 为什么getTimeinMili的值会发生变化?
  2. 如何正确地将getTimeinMili传递给CounterClass?

0 个答案:

没有答案