App 2.15.0: queued live data survives restarts
Unsent live samples were kept in memory only, so a reboot or a killed process during a dead spot lost them. The queue is now saved to files/telemetry_queue.json with AtomicFile, at most every 5 minutes and only after a change (the flash is not written every 15 s), and at once when the service stops; it is restored, oldest first and within the 2000-sample cap, when the service starts. A damaged file restores nothing rather than failing. Tested on the emulator across a reboot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QLJfZQZeAKAwSqViTmLzki
This commit is contained in:
@@ -141,7 +141,10 @@ public class AbrpUploadService extends Service {
|
||||
running = false;
|
||||
prefs.edit().putBoolean("service_running", false).apply();
|
||||
if (scheduler != null) scheduler.shutdownNow();
|
||||
if (telemetryUploader != null) telemetryUploader.stop();
|
||||
if (telemetryUploader != null) {
|
||||
telemetryUploader.persist(); // what is still queued survives the restart
|
||||
telemetryUploader.stop();
|
||||
}
|
||||
if (steeringKeys != null) steeringKeys.unregister();
|
||||
Log.i(TAG, "Service stopped");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user