在我的应用中,我想计算加速度计超过一定阈值的时间,但我不确定如何做到这一点。
我的加速度计的灵敏度设置为'SensorManager.SENSOR_DELAY_GAME'
,因此onSensorChanged()
方法大约每秒调用20次。
我有一个名为movementFlag
的标志,只要加速计速度超过阈值,我就会设置为true,当它低于阈值时设置为false。
所以说过一个小时的空间,我想计算movementFlag
设置为true的总时间,每次设置时增加这个时间值,并且设置时间相同假的
我想也许我可以有两个值 - moveStart
和moveFinish
- 我可以在movingFlag从true转换为false时设置为System.currentTimeMillis()
,反之亦然。相互减去这些值会给我每次设置标志的时间
但是我不知道如何在标志的过渡时这样做,而不是在设置标志时的整个时间
任何人都可以告诉我如何做到这一点或其他方法来做我想做的事情吗?感谢
答案 0 :(得分:1)
您需要存储两个值以了解转换何时发生,一个存储moveFlag的最后一个值(让我们称之为lastV),另一个存储值之前的值(prevV)。然后:
这样,您可能只会在更改上累积时间。