重新配对或清除配对信息时,先停止并释放旧 MQTT 客户端资源,再写入或清除本地 MQTT 配置;同时避免断开回调丢失、停止期间重启和回调异常导致服务状态不一致。
MqttSimple 增加 10 秒断开超时;正常断开、断开失败强制释放、超时强制释放均有明确结果。CustomMqttService 回传停止结果,并在停止期间有新启动请求时于停止完成后重新初始化。SetBasicFragment 在 MQTT 停止完成后才写入或清除配对配置;停止请求失败则保留旧配置。TDD RED 阶段,新增停止结果断言后因生产类型缺失而按预期编译失败。完成实现后执行:
JAVA_HOME=/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home \ sh ./gradlew -q :app:testDebugUnitTest :app:compileDebugJavaWithJavac :app:assembleDebug --no-daemon
退出码为 0;断开、重复回调、资源释放异常与失败强制释放均有单元测试覆盖,git diff --check 通过。