Cómo comparar el time de inactividad de MotionEvent con un reloj, ¿cuál es su base de time?

Estoy tratando de determinar el order cronológico de un MotionEvent frente a algo que sucede periódicamente en mi object UI.

private var rotateFinishTime: Long = -1 .... fun somethingHappensPeriodically() { Log.d(tag_, "show new round") ... this.rotateFinishTime = SystemClock.elapsedRealtime() } 

Tengo un GestureDetector.OnGestureListener adjunto:

  override fun onSingleTapConfirmed(gd: GestureDetector, e: MotionEvent): Boolean { // for tap: since it comes delayed, have to check event time if (e.downTime < this.rotateFinishTime || this.rotating) { Log.d(tag_, "e.downTime: $e.downTime rotateFinishTime: $rotateFinishTime downTime - rotateFinishTime: ${e.downTime - rotateFinishTime} rotating: $rotating") return true } ... do stuff } 

e.downTime: 4763800 rotateFinishTime: 18832541 downTime – rotateFinishTime: -14068741 rotating: false

Entonces, el time real transcurrido no parece ser la base del time. Obviamente, el time de época de Unix no encaja tampoco. Nota interesante: el cálculo produce los resultados "esperados" en el emulador qemu, pero no en mi dispositivo con stock Android 6.0 flasheado.

Creo que lo encontré: debería llamar a SystemClock.uptimeMillis() para hacer una comparación válida. La documentation está enterrada en InputEvent, no la recita ni la repite en MotionEvent:

/ ** * Recupera la hora en que ocurrió este evento, * en la base de time de {@link android.os.SystemClock # uptimeMillis}. * * @return Devuelve la hora en que ocurrió este evento, * en la base de time de {@link android.os.SystemClock # uptimeMillis}. * /

Obviamente, el emulador nunca se sumió en un sueño profundo.

  • Reemplazar SAM-constructor con lambda con tipo covariante
  • Tipo no coincidente, nodo requerido, cadena encontrada
  • ejecutar el proyecto android studio 2.3.3 kotlin en android studio 3.0.1 después de la actualización
  • Con la dependency injection Kodein, no quiero pasar por todas las instancias de kodein en todas partes
  • ¿Cómo crear una matriz genérica llena de nulos en Kotlin?
  • Recurso esperado de tipo ID
  • Establecer text en EditText Kotlin, Android
  • ¿Cómo cambiar el color de background de una vista de carta cuando se selecciona?
  • ¿Por qué mi escena es nula?
  • java.awt.HeadlessException iniciando la aplicación JavaFX de Kotlin REPL
  • Retrofit2 + SimpleXML en Kotlin: MethodException: la anotación debe marcar un set o método get