【发布时间】:2017-10-26 23:00:44
【问题描述】:
我正在尝试确定 MotionEvent 的时间顺序与我的 UI 对象中定期发生的事情。
private var rotateFinishTime: Long = -1
....
fun somethingHappensPeriodically() {
Log.d(tag_, "show new round")
...
this.rotateFinishTime = SystemClock.elapsedRealtime()
}
我有一个 GestureDetector.OnGestureListener 附加:
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 旋转:假
所以经过的实时似乎不是时间基准。显然,unix 纪元时间也不适合。有趣的说明:计算在 qemu 模拟器上产生了“预期”的结果,但在我的装有 Android 6.0 的设备上却没有。
【问题讨论】:
标签: android kotlin android-event