Clock Ticks в телефоне Android

Мы работаем над синхронизацией базы данных распределенной системы, которая основана на реальном времени.

Поскольку время устройства может быть изменено пользователем или неисправной сетью, оно может очень легко повредить всю базу данных. Поэтому мы решили получить время с главного сервера, сохранить его и рассчитать реальное время, рассчитав временной интервал, пройденный путем подсчета количества тактов. Как мы можем получить доступ к тикам оборудования? И придется ли нам запускать какой-то сервис для этого? Мы хотим, чтобы тики были засчитаны, даже когда устройство находится в режиме ожидания / сна / выключено. Как фактические часы отображаются. Мы хотим, чтобы это было чем-то вроде параллельных часов, просто чтобы только мастер-сервер мог устанавливать время на нем.

1 ответ

Решение

Как мы можем получить доступ к тикам оборудования?

Вы не

Мы хотим, чтобы тики были засчитаны, даже когда устройство находится в режиме ожидания / сна / выключено.

Ваши пользователи нет. Ваши пользователи хотят, чтобы их устройства работали нормально, а не с помощью какого-либо программного обеспечения, поддерживающего питание процессора и подключающего ОЗУ, просто следящего за временем, потому что это довольно быстро разряжает батарею.

Возможно, все обстоит иначе в "отдаленных районах и деревнях" рядом с вами. В большинстве известных частей вселенной время истекает, даже если ваше приложение не запущено.

Следовательно, вам не нужно "считать тики", чтобы определить, истекло ли время. Вместо этого, когда вы "получаете время от главного сервера" и "сохраняете его", вы также сохраняете текущее значение SystemClock.elapsedRealtime(), это количество миллисекунд с момента последней перезагрузки телефона. Затем, когда вам нужно определить время относительно "главного сервера", вы вычисляете разницу между elapsedRealtime() значение и ток elapsedRealtime() значение и добавьте это количество миллисекунд к "времени от главного сервера", чтобы получить текущее время, видимое "главным сервером".

Другие вопросы по тегам