Question

I have a independent clock created in my application. The clock runs as a different thread in the activity, starting from a base time set by me. I update the clock using the difference between the uptimemillis when I set the clock, and the current uptimemillis. But the uptimetimer, can be reset by Android, and is ever reset when Android reboot.

I only want to know if the uptime timer is reset, to know if the clock is still reliable.

How?

Était-ce utile?

La solution

According to the documentation you can use SystemClock.elapsedRealtime()

elapsedRealtime(): Returns milliseconds since boot, including time spent in sleep.

This value will only be reset when the device is restarted. Listen to the broadcast boot_complete and you will know when that is.

The problem with the updateMillis() is clearly noted in the documentation:

uptimeMillis(): Returns milliseconds since boot, not counting time spent in deep sleep. Note: This value may get reset occasionally (before it would otherwise wrap around).

From how I understand the documentation, by using elapsedRealtime your users cannot manipulate your counter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top