我正在编写一个 android 应用程序,在该应用程序中我从手机的传感器获取加速度计数据,直到用户退出。之后我修改数据并尝试将其保存到现有数据库中。一切正常,但是当我在 onSensorChanged 方法中调用我的saveToDatabase ( ) 方法时,应用程序开始运行非常缓慢并且变得无响应并在不久之后崩溃。所以,问题是我经常调用 saveToDatabase() ......
有没有办法避免这种情况?
- 可能与必须收集传感器数据并在 5 分钟后保存到数据库的ArrayList/LinkedList/ArrayDeque一起使用?
- 还是将所有内容都放在缓冲区中,当用户退出时,然后将所有内容从其中提取到数据库中?
修改 saveToDabase 方法,使其使用beginTransaction而不是insert方法?
protected void saveToDatabase(){ contentValues.put("SensorSensitivity", sensorSensitivity); contentValues.put("AccDataX", accelerometerData[0]); contentValues.put("AccDataY", accelerometerData[1]); contentValues.put("AccDataZ", accelerometerData[2]); contentValues.put("timeStamp", System.currentTimeMillis()); long affectedColumnId = sqliteDatabase.insert("tName", null, contentValues); contentValues.clear(); }