2015-04-21 1 views
5

Вот что я знаю, если есть какие-либо ошибки, дайте мне знать.Android Wear: Есть ли причина использовать объект Time, а не объект Calendar?

Пример таких лиц, как analog watch face, в SDK использует устаревший объект Time для управления временем.

Согласно документации Time был устарел на уровне 22 (Android 5.1). Теперь, очевидно, у него все еще много жизни, но в интересах будущего кода проверки, который я посмотрел, я посмотрел на переход к объекту «Календарь».

Я считаю, что время и календарь являются причудливыми обертками для длинной переменной. Я написал этот тест, чтобы проверить их скорость.

  long timeStart = 0; 
      long timeEndcalendarStart = 0; 
      long timeDifference = 0; 
      long calendarEnd = 0; 
      long calendarDifference = 0; 


      for (int index = 0; index < 30000; index++) { 

       timeStart = System.currentTimeMillis(); 
       Time testTime = new Time(); 
       testTime.setToNow(); 
       long mills = testTime.toMillis(false); 
       float seconds = testTime.second; 
       float minutes = testTime.minute; 
       float hours = testTime.hour; 

       timeEndcalendarStart = System.currentTimeMillis(); 

       Calendar testCalendar = Calendar.getInstance(); 
       long cmills = testCalendar.getTimeInMillis(); 
       float cseconds = testCalendar.get(Calendar.SECOND); 
       float cminutes = testCalendar.get(Calendar.MINUTE); 
       float chours = testCalendar.get(Calendar.HOUR); 
       calendarEnd = System.currentTimeMillis(); 

       timeDifference += timeEndcalendarStart - timeStart; 
       calendarDifference += calendarEnd - timeEndcalendarStart; 
      } 

Результаты тестов показывают календарь, как 2 раз быстрее запустить его на Moto 360.

Switching тестового циферблата в календарь показывает памяти не утечку в отладчике.

Так что мой вопрос в два раза. Есть ли проблема с моим эталоном, или это действительно быстрее? Если да, то в чем преимущество времени, так что они использовали его в своих примерах?

Моя гипотеза заключается в том, что они просто использовали ее, чтобы сделать их примеры более понятными. Время - более интуитивное имя, но я хотел бы знать, есть ли техническая причина.

+1

Примеры были разработаны на платформе 21 ... и они были скопированы на платформу 22. Это единственная причина. Спасибо – shivamDev

ответ

2

Когда образцы были написаны, класс Time еще не устарел. Мы бы использовали Calendar, если бы мы их написали сейчас. Используйте Calendar.

+0

Спасибо! Это то, что я подумал, но не был уверен. – netsplit

Смежные вопросы