[英]Writing accelerometer data
我希望我的應用程序在后台運行,並在文件中寫入一個值。 我有按下后退按鈕的代碼,但是它錯過了幾個要寫入文件的值。 我在MainActivity的OnCreate()方法中有以下代碼。
mHandler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
// sensorManager.registerListener(MainActivity.this, accel,
// SensorManager.SENSOR_DELAY_FASTEST);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
// sensorManager.unregisterListener(MainActivity.this);
firstValueInInterval=true;
mHandler.postDelayed(runnable,1000);
}
},500);
}
};
然后,當每次調用onSensorChanged()時,我將寫入值。
x = event.values[0];
y = event.values[1];
z = event.values[2];
AccelData data = new AccelData(currentTime, x, y, z);
sensorData.add(data);
fs.writeToFile(sensorData);
sensorData = new ArrayList<AccelData>();
下面是按下后退按鈕onResume和onPause()的代碼。
public void onBackPressed() {
moveTaskToBack(true);
}
@Override
protected void onResume() {
super.onResume();
mHandler.postDelayed(runnable,500);
}
@Override
protected void onPause() {
super.onPause();
mHandler.postDelayed(runnable,500);
//sensorManager.unregisterListener(this);
}
我希望該應用程序運行24 * 7並寫入數據。
不確定是否能收到您的代碼,我不熟悉Android編程,但是我將嘗試通過建議其他方法來回答。 難道您不能在某個背景線程中執行這些操作嗎? 這樣,您不必每次都創建一個新的可運行對象。
另外請注意,根據采樣率,您會產生大量數據。 這將非常耗能,並且會產生很大的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.