HTTP 离线订单补传发生可重试失败时,UploadOrderWorker 返回 Result.retry(),WorkManager 会按指数退避重新调度。设备长期离线后,即使重新联网,也可能继续等待较长的退避时间。
此外,旧逻辑由 Worker 在执行结束时安排下一次 Alarm。如果 Worker 被终止或执行超时,可能无法续排下一轮。
upload_offline_orders_fixed_polling。upload_offline_orders 对应的任务,避免升级前遗留的指数退避任务阻塞新链路。ExistingWorkPolicy.KEEP,上一轮仍运行时不创建并发 Worker;下一次 Alarm 仍持续存在。Result.retry(),所有结束路径统一返回 Result.success()。1,继续处理其他订单。1,并立即停止本轮。1 → 4 的数据库原子抢占。9 成功、状态 3 明确业务失败、状态 4 超过 10 分钟恢复为状态 1 的现有策略。AlarmReceiver.javaUploadOrderWorker.javaOfflineOrderUploadPolicy.javaOfflineOrderUploadPolicyTest.javaOfflineOrderUploadPolicyTest 通过。:app:testDebugUnitTest 全量应用单元测试通过。:app:compileDebugJavaWithJavac 通过。Result.retry()。