2015-04-03 84 views
0

我正在使用不更新倒计数的countDownTimer。我正在倒数分钟和数小时。只有当我重新开始活动时,计数才会更新。它没有更新刻度。 请帮帮我。由于 这里是我的代码:倒数计时器不更新Android中的分钟和小时数

内OnTick
Date eventStartDate = Utility.stringToDate(event.eventFrom); 
      Date currentDateTime = new Date(); 
      long ms = eventStartDate.getTime() - currentDateTime.getTime(); 

      long ms1 = eventStartDate.getTime() - currentDateTime.getTime(); 
      if (ms > 0) { 
       long miliSecondsPerSecond = 1000; 
       long miliSecondsPerMinute = miliSecondsPerSecond * 60; 
       long miliSecondsPerHour = miliSecondsPerMinute * 60; 
       long miliSecondsPerDay = miliSecondsPerHour * 24; 
       long days = ms/miliSecondsPerDay; 
       ms = ms - (days * miliSecondsPerDay); 
       final long hours = ms/miliSecondsPerHour; 
       ms = ms - (hours * miliSecondsPerHour); 
       final long minutes = ms/miliSecondsPerMinute; 
       ms = ms - (minutes * miliSecondsPerMinute); 


       new CountDownTimer(ms1, miliSecondsPerMinute) { // adjust the milli seconds here 

        public void onTick(long millisUntilFinished) { 
         eventTimer.setText(hours + ":" + minutes); 
        } 

        public void onFinish() { 
         eventTimer.setText("00:00"); 
        } 
       }.start(); 
+0

你或许应该更新小时和分钟,当onTick调用 – Blackbelt 2015-04-03 15:32:38

+0

是的,我更新小时和分钟......它的工作当我重新启动活动。但是,当我继续活动时,值不会更新。 – 2015-04-03 15:36:23

回答

1

写下面的代码

Date eventStartDate = Utility.stringToDate(event.eventFrom); 
Date currentDateTime = new Date(); 
long ms = eventStartDate.getTime() - currentDateTime.getTime(); 
long ms1 = eventStartDate.getTime() - currentDateTime.getTime(); 
    if (ms > 0) 
    { 
      long miliSecondsPerSecond = 1000; 
      long miliSecondsPerMinute = miliSecondsPerSecond * 60; 
      long miliSecondsPerHour = miliSecondsPerMinute * 60; 
      long miliSecondsPerDay = miliSecondsPerHour * 24; 
      long days = ms/miliSecondsPerDay; 
      ms = ms - (days * miliSecondsPerDay); 
      final long hours = ms/miliSecondsPerHour; 
      ms = ms - (hours * miliSecondsPerHour); 
      final long minutes = ms/miliSecondsPerMinute; 
      ms = ms - (minutes * miliSecondsPerMinute); 
}