Все мои попытки добавить задержки к выводу не работают. Несколько моих попыток приведены ниже. Я понятия не имею, почему они не работают.
- Использование таймера обратного отсчета внутри цикла while(true). Цикл while никогда не вводится. Я тестировал с использованием операторов отладки/печати и других простых методов.
Код: Выделить всё
while(true)
{
new CountDownTimer(2000, 500)
{
@Override
public void onTick(long l)
{
}
public void onFinish()
{
sensorWork(); // -> Only printing the sensor values. Slightly different from the one included below.
}
}.start();
}
- Поиграемся с событиями прослушивателя. Я пробовал экспериментировать с регистрацией слушателей, отменой их регистрации и так далее. Но таймер обратного отсчета, похоже, работает только при первом входе.
Код: Выделить всё
public void sensorWork()
{
new CountDownTimer(2000, 500)
{
@Override
public void onTick(long l)
{
}
@Override
public void onFinish() {
sensorEventListener = new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
if (sensorEvent.sensor.getType() == Sensor.TYPE_LINEAR_ACCELERATION) {
workLinearAcceleration(sensorEvent);
}
if (sensorEvent.sensor.getType() == Sensor.TYPE_GRAVITY) {
workGravity(sensorEvent);
}
if (sensorEvent.sensor.getType() == Sensor.TYPE_GYROSCOPE) {
workGyroscope(sensorEvent);
}
if (sensorEvent.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
workRotationVector(sensorEvent);
}
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
};
sensorManager.registerListener(sensorEventListener, sensorGravity, SensorManager.SENSOR_DELAY_NORMAL);
sensorManager.registerListener(sensorEventListener, sensorLinearAcc, SensorManager.SENSOR_DELAY_NORMAL);
sensorManager.registerListener(sensorEventListener, sensorGyro, SensorManager.SENSOR_DELAY_NORMAL);
sensorManager.registerListener(sensorEventListener, sensorRotationVector, SensorManager.SENSOR_DELAY_NORMAL);
sensorWork();
}
}.start();
}
В чем мне нужна помощь – Как получать значения акселерометра только тогда, когда они мне нужны? В идеале я хочу иметь возможность настроить таймер обратного отсчета внутри бесконечного цикла, который включает операторы для печати/сохранения значений акселерометра и GPS.
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-sampling