В моем приложении я хочу подсчитать, как долго акселерометр превышает определенный порог, но я не уверен, как это сделать.
Чувствительность моего акселерометра установлена на 'SensorManager.SENSOR_DELAY_GAME'
, поэтому onSensorChanged()
метод вызывается примерно 20 раз в секунду.
У меня есть флаг с именем movementFlag
, который я устанавливаю в значение true, когда скорость акселерометра превышает пороговое значение, и возвращаю значение в значение false, когда он падает ниже порогового значения.
Так, скажем, в течение часа я хочу подсчитать общее количество времени, в течение которого movementFlag
установлено в значение true, увеличивая это значение времени каждый раз, когда оно установлено, и то же самое, когда оноустановить в false.
Я подумал, что, возможно, у меня могло бы быть 2 значения - moveStart
и moveFinish
- которые я мог бы установить в System.currentTimeMillis()
при переходе motionFlag от true к false и наоборот.Вычитание этих значений друг от друга дало бы мне количество времени, которое флаг устанавливается каждый раз.
Но я не знаю, как сделать это только при переходе флага, а не все время, пока флаг установлен.
Может кто-нибудь сказать мне, как сделать тот или иной метод, чтобы сделать то, что я хочу сделать здесь?Спасибо