Альтернатива Environment.TickCount в Xamarin iOS 11.2 - PullRequest
0 голосов
/ 28 декабря 2018

Похоже, что Environment.TickCount по крайней мере в iOS 11.2 изменил свое поведение.На моем iPad с iOS 10.3 он возвращает количество миллисекунд с момента запуска устройства.Но на iPhone с iOS 11.2 он возвращает 560066914, а через пару минут - 560066431, что меньше, и устройство не было перезапущено!

Есть ли другой способ получить время с момента запуска устройства?Мне нужно проверить, изменил ли пользователь настройки времени с момента последнего запуска моего приложения.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

Решено просто:

#if __IOS__
            long run =  (long)(NSProcessInfo.ProcessInfo.SystemUptime * 1000);
#else
            long run = System.Environment.TickCount;
#endif

Обновление:

NSProcessInfo.ProcessInfo.SystemUptime также возвращает неправильные значения.Похоже, что Apple сломала TickCount в iOS 11, и теперь вы не можете на это положиться."Эти самые лучшие!"(Г)

0 голосов
/ 28 декабря 2018

Вы можете найти всю необходимую информацию в Документах Microsoft :

Свойство TickCount циклически изменяется между Int32.MinValue, который является отрицательным числом, и Int32.MaxValue один раз.каждые 49,8 дня.

Поскольку значением свойства TickCount является 32-разрядное целое число со знаком, если система работает непрерывно, TickCount будет увеличиваться с нуля до Int32.MaxValue в течение приблизительно 24,9 дней, а затем перейти к Int32..MinValue, которое является отрицательным числом, затем увеличивается до нуля в течение следующих 24,9 дней.Вы можете обойти эту проблему, вызвав функцию Windows GetTickCount, которая сбрасывается в ноль примерно через 49,7 дней, или вызвав функцию GetTickCount64.

Если вы измеряете DateTime.Now и Environment.TickCount & Int32.MaxValue (чтоявляется положительным числом и сбрасывается каждые 24,9 дня) вы можете узнать, изменил ли пользователь время или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...