2015-02-19 2 views
0

У кого-нибудь еще была проблема, когда Android измеряет интервал времени некорректно? На всех моих устройствах, кроме моего HUDL2, этот код возвращает правильное количество времени: проверяется путем запуска секундомера.System.currentTimeMillis() и nanoTime() корректно не установлены

long time = System.currentTimeMillis(); 
long timenano = System.nanoTime(); 

try { 
    Thread.sleep(12000); 
    } catch (InterruptedException e) { 
     e.printStackTrace(); 
    } 
} 
long finish = System.currentTimeMillis(); 
long finishnano = System.nanoTime(); 
long totalTime = finish-time; 
long totalTimeNano = finishnano-timenano; 
Log.i(TAG,"totalTime="+totalTime+", nano="+totalTimeNano/1000000); 

Возвращает 12seconds, но на самом деле занимает ближе 17 секунд для запуска (по секундомеру). Nano времени и Миллис имеют одни и те же результаты ...

Это осознание произошло потому, что игра, которую я написал работает медленнее на HUDL2

+0

Просто сыграл еще одну игру на HUDL2 - и заметил ту же проблему на Traffic Racer. Движение HUDL2 происходит медленнее. Я могу только предположить, что игра также полагается на системное время каким-то образом. – user2654943

+0

Есть некоторая информация, которая может быть полезна в документации _SystemClock_; http://developer.android.com/reference/android/os/SystemClock.html. Тем не менее разница в 5 секунд звучит слишком много. – harism

+0

Очень странно. Просто установили последнее обновление HUDL2, и проблема исчезла. Наверное, это было просто перезапуск. Но трудно понять. Были некоторые проблемы, о которых сообщалось с ошибками HUDL2 - возможно, это связано. – user2654943

ответ

0

Я, наверное, думаю, вы не включили код в onResume. Он должен быть включен в метод onResume.

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