日期:2026-07-16
绑盘机提示绑定成功后,秤端请求 /p/api/selectPlate 已返回 code=0 和人员信息,但打餐页仍可能显示“餐盘未绑定”或未显示人员。
HomeActivity 切换打餐 Fragment 与人员接口回包是两个异步时序;一次非粘性 STAFF_INFO_UPDATE 不能保证目标 Fragment 已经创建并注册。StaffInfo 或 null,无法区分“正在查询”“确实未绑定”和“查询失败”,页面重建时不能正确恢复展示状态。HomeActivity 作为唯一状态源,维护不可变的人员快照:托盘码、会话号、加载状态(LOADING、BOUND、UNBOUND、ERROR)和人员信息。onViewCreated() 主动读取 HomeActivity 快照;即使回包早于页面创建,也能显示最新人员。HomeActivity 直接向当前可见的打餐 Fragment 推送同一份快照,作为已创建页面的即时刷新;人员展示不再依赖 STAFF_INFO_UPDATE。LOADING 只清空展示,UNBOUND 才显示“餐盘未绑定”,避免网络尚未返回时的误提示。onViewCreated() 从快照显示人员。HomeActivity 直接推送快照刷新页面。UNBOUND 显示“餐盘未绑定”,LOADING 不误报。JAVA_HOME=/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home ./gradlew :app:assembleDebug --offline --console=plain --warning-mode none 构建成功。保留旧 Android 工具链的 lambda stub 版本警告,未出现本次改动相关编译错误。真机仍需覆盖快速回包、正常回包、换盘和撤盘场景。