Goal:取消 HTTP 离线订单补传的 WorkManager 指数退避,并建立独立于 Worker 执行结果的固定 180 秒 Alarm 调度闭环。
Architecture:AlarmReceiver 先续排 Alarm,再用新唯一任务名启动 Worker;Worker 仅执行单轮上传,所有路径返回成功,无网快速结束,传输级失败停止本轮。
Tech Stack:Android AlarmManager、AndroidX WorkManager 2.5.0、SQLite、JUnit 4、Java 8。
执行状态:已按计划完成,验证结果见同目录变更记录。
OfflineOrderUploadPolicy.java,增加订单级和传输级失败范围。OfflineOrderUploadPolicyTest.java,先验证失败,再实现最小策略并验证通过。assertFalse(OfflineOrderUploadPolicy.shouldStopCurrentRound(
OfflineOrderUploadPolicy.RetryFailureScope.ORDER));
assertTrue(OfflineOrderUploadPolicy.shouldStopCurrentRound(
OfflineOrderUploadPolicy.RetryFailureScope.TRANSPORT));
AlarmReceiver.java 中区分旧任务名和新固定轮询任务名。KEEP 启动新 Worker。Result.retry() 路径。Result.retry、nextUploadAlarm 或 AlarmUtils。OfflineOrderUploadPolicyTest。:app:compileDebugJavaWithJavac 和 git diff --check。change_records 中创建同名 Markdown 与 HTML 变更记录。