내 UI 개체에서 주기적으로 발생하는 이벤트와 MotionEvent의 시간 순서를 결정하려고합니다.MotionEvent 중단 시간을 시계와 비교하는 방법, 시간 기준은 무엇입니까?
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 : 4,763,800 rotateFinishTime : 18832541 다운 타임 - rotateFinishTime : -14068741 회전 : 그래서 거짓
경과 된 실시간은 시간 기반으로 보이지 않습니다. 분명히, 유닉스 신기원 시간은 어느쪽에도 맞지 않는다. 재미있는 메모 : 계산은 qemu 에뮬레이터에서 "예상 된"결과를 생성하지만, Android Android 6.0이 플래시 된 장치에서는 발생하지 않습니다.