android从onSensorChanged事件写入文件

android从onSensorChanged事件写入文件,android,Android,我承认我在这个问题上有点困惑。我刚开始使用Android编程,到目前为止我很喜欢这种体验,但我遇到了一个神秘的问题,我写文件时,文件会无限期地空着(不,我很确定我没有意外地覆盖它们) 场景是,我想在按下按钮时将几秒钟的传感器数据记录到SD卡上的日志文件中。我也会在屏幕上显示相同的内容。但是,尽管屏幕上显示的内容是正确的,但日志文件已创建,但为空 我只能假设这与我从onSensorChanged(Event)方法调用write这一事实有关,因为在其他地方使用相同的代码时执行得很好 public M

我承认我在这个问题上有点困惑。我刚开始使用Android编程,到目前为止我很喜欢这种体验,但我遇到了一个神秘的问题,我写文件时,文件会无限期地空着(不,我很确定我没有意外地覆盖它们)

场景是,我想在按下按钮时将几秒钟的传感器数据记录到SD卡上的日志文件中。我也会在屏幕上显示相同的内容。但是,尽管屏幕上显示的内容是正确的,但日志文件已创建,但为空

我只能假设这与我从onSensorChanged(Event)方法调用write这一事实有关,因为在其他地方使用相同的代码时执行得很好

public MyClass(....){
    ....
    sensorManager.registerListener(this, accelerometer, sensorManager.SENSOR_DELAY_NORMAL);
    Thread.sleep(time * 1000);
    sensorManager.unregisterListener(this);
    try {
        logWriter.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}


public void onSensorChanged(SensorEvent event){
    String msg = msgFor(event);
    try {
        logWriter.write("SOME_TEXT" + msg + "\n"); // FileWriter logWriter is a field, but the file is empty in the end
    } catch (IOException e){
        e.printStackTrace();
    }
    resultBox.append("\n" + msg); // TextView resultBox is a field, and writes to screen correctly
    Log.d("SENSOR-CHANGE", msg);
}

private String msgFor(SensorEvent event){
    return event.timestamp+", "+event.sensor.getName()+", "+Arrays.toString(event.values);
}

任何建议都将不胜感激!我知道那里有一些类似的线程,但我没有找到我需要的确切内容。

您得到的错误是什么?没有错误消息,但文件是空的。但是,屏幕上的“resultBox”会充满文本。