Reference: http://developer.android.com/reference/android/os/SystemClock.html
system.currenttimemills () the number of milliseconds that this function obtains is determined by the date and time of the current system. It can be changed by Systemclock.setcurrenttimemillis (). If you need an accurate timer, you must not use it .
Systemclock.uptimemillis () This clock is often used to animate, and Animationutils.currentanimationtimemillis () is implemented by this method. it represents the number of milliseconds from the start of the system startup, and when the system enters deep sleep, the clock stops , such as the CPU off, the monitor is off, the device waits for external input, and so on. It is the basis of many timers, such as Thread.Sleep (), object.wait (), System.nanotime (). If our timer does not need to go on while the device is hibernating, it is appropriate to use this function as a timer.
systemclock.elapsedrealtime () This clock is in time to operate normally when the CPU is in power-saving mode or deep sleep . So if we need an accurate timer, then use this method.
Android-tip-the use of various clock