ユーザーが終了するまで、電話のセンサーから加速度計のデータを取得する Android アプリを作成しています。その後、データを変更し、既存のデータベースに保存しようとします。すべて正常に動作しますが、 onSensorChangedメソッドでsaveToDatabase () メソッドを呼び出すと、アプリの動作が非常に遅くなり、応答しなくなり、すぐにクラッシュします。だから、問題は私があまりにも頻繁にsaveToDatabase() を呼び出していることです...
それを回避する方法はありますか?
- センサーデータを収集し、5 分後に DB に保存する必要があるArrayList/LinkedList/ArrayDequeを使用している可能性がありますか?
- または、すべてをバッファに入れ、ユーザーが終了すると、そこからすべてをデータベースに抽出しますか?
insertメソッドの代わりにbeginTransactionを使用するように saveToDabase メソッドを変更しますか?
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(); }