countDownTimer问题

问题描述

我正在尝试添加countDownTimer,这是可行的(只要curTimeendTime之前),我确实收到了“完成”消息。我的目标是完成后想重新启动计时器。如果我将counter.start();注释掉,它将崩溃:Attempt to invoke virtual method 'android.os.CountDownTimer android.os.CountDownTimer.start()' on a null object reference

有什么建议吗?

    public void loadCountDownTodaysLikes() {
        SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
        String curTime = SharedPrefManager.getCurTime();
        String endTime = "21:01:20";
        Date curTimeD,endTimeD;
        try {
            curTimeD = formatter.parse(curTime);
            endTimeD = formatter.parse(endTime);
           long curLong = curTimeD.getTime();
            long endLong = endTimeD.getTime();
            diff = endLong - curLong;
        } catch (ParseException e) {
            e.printstacktrace();
        }
        counter = new CountDownTimer(diff,1000) {

            public void onTick(long millisUntilFinished) {
                long millis = millisUntilFinished;
                String hms =
                        (TimeUnit.MILLISECONDS.toHours(millis) - TimeUnit.DAYS.toHours(TimeUnit.MILLISECONDS.toDays(millis)) + " : ")
                                + (TimeUnit.MILLISECONDS.toMinutes(millis) - TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)) + " : "
                                + (TimeUnit.MILLISECONDS.toSeconds(millis) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))));
                countDownTodays.setText("Resetting in: " + hms);
         
            }

            public void onFinish() {
                countDownTodays.setText("finished!");
                //counter.start();
            }
        }
                .start();
    }

解决方法

它对我有用,我不得不做一些编辑,因为我假设您的变量是什么。您是否可以:

String curTime = SharedPrefManager.getCurTime(); 

是问题吗?我没有在示例中进行设置,因为我不知道它在您的身边看起来如何,我只是使用了:

   String curTime = "21:01:15";

每次都会重置计时器。尝试记录您的curTime,看看是否能按预期将其恢复。使用Log.i("CurTime",curTime);

希望这对您有所帮助!

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...