0

我承认我对这个有点难过。我刚刚开始使用 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);
}

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

4

0 回答 0