android从onSensorChanged事件中编写文件

时间:2012-10-22 03:56:17

标签: android

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

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

0 个答案:

没有答案