外观
设备连接为什么适合用状态机?
标准回答
状态机把连接阶段与允许动作显式表示出来,例如 Idle、Connecting、Discovering、Ready、Reconnecting、Closed,并为每个事件规定合法迁移。
关键机制
- 连接成功不等于协议就绪;发现服务、认证、订阅通知完成后,才允许相应业务动作。
- 每次会话带 sessionId,过期回调直接忽略;状态更新通过受控单线程或同步机制保持一致。
- 超时、主动取消、远端断开、蓝牙关闭和进程恢复都应有明确出口,释放资源并反馈结果。
通俗例子
用户先连 A 又立刻连 B,A 的成功回调晚到。通过会话编号识别旧连接,就不会把界面错误改成“A 已连接”。
易混淆点
不要用固定 sleep 代替就绪信号;连接状态由实际回调和协议确认推动。
参考资料
内容来源
- Android 技术札记 · 原条目
device-state