Java 带加速计的异步任务-重复条目

Java 带加速计的异步任务-重复条目,java,android-asynctask,accelerometer,wear-os,Java,Android Asynctask,Accelerometer,Wear Os,我正在尝试使用AsyncTask将Android Wear的加速度计结果记录到一个文件中。然而,在我的AsyncTask-AccelerometerReventLoggerTask实例中,读数似乎重复,我不知道为什么 我有一个定义如下的WearableService.java类,它扩展了服务,并实现了一个抽象的SensorEventListener: public class WearableService extends Service implements SensorEventListen

我正在尝试使用
AsyncTask
将Android Wear的加速度计结果记录到一个文件中。然而,在我的
AsyncTask
-
AccelerometerReventLoggerTask
实例中,读数似乎重复,我不知道为什么

我有一个定义如下的
WearableService.java
类,它扩展了
服务
,并实现了一个抽象的
SensorEventListener

public class WearableService extends Service implements SensorEventListener {

    ...

    @Override
    public void onCreate() {
        super.onCreate();

        senSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

        //get accelerometer
        senAccelerometer = senSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);

        // register listener
        senSensorManager.registerListener(this, senAccelerometer, SensorManager.SENSOR_DELAY_FASTEST);
    }

    @Override
    public void onSensorChanged(SensorEvent event) {
        if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) {
            new AccelerometerEventLoggerTask().executeOnExecutor(SERIAL_EXECUTOR, event);
        }
    }

    ...
}
由此创建了一个
AsyncTask
,用于写入文件(目前,它执行一个简单的日志):

私有类AccelerometerReventLoggerTask扩展了AsyncTask{
@凌驾
受保护的无效doInBackground(传感器事件…事件){
SensorEvent=事件[0];
Log.d(标记“+event.values[0]+”;“+event.values[1]+”;“+event.values[2]);
}
}
但是,当程序正常运行时,我会得到重复的条目(断点不是这种情况)。这是一个示例日志:

为什么会这样?有趣的是,当我在sensorchange中运行相同的
Log.d
行时,没有重复。因此,在
AsyncTask
实现
AccelerometerReventLoggerTask
中发生了一些奇怪的事情


如果有人能对这个问题有所了解,或者知道原因,我将不胜感激。谢谢。

查看此问题和答案:谢谢!这可能很有用。:)可能重复的
private class AccelerometerEventLoggerTask extends AsyncTask<SensorEvent, Void, Void> {

    @Override
    protected Void doInBackground(SensorEvent... events) {
        SensorEvent event = events[0];

        Log.d(TAG, "" + event.values[0] + "; " + event.values[1] + "; " + event.values[2]);
    }
}