最近在做类似微信多人语音,视频聊天功能,用到了Android的状态机,借此写写自己的理解
状态模式
对状态模式的理解:
不同的状态对应不同的行为,当一个对象的状态改变了,那么该对象的行为也随之改变!通过将状态封装成一个类,然后去控制对象的行为,这就是状态模式!
解决什么问题:
一个事物有很多种状态,如果不使用状态模式,那么在执行具体的操作的时候,就会有很多的if/else 或者switch/case判断,如果有很多状态,那么在每个功能函数就会有很多的语句嵌套,增加的代码的复杂度,不利于维护!
应用:
1.电梯的运作
2.电视遥控机的操作
3.语音/视频通话流程
4.APP访客模式与用户模式的相关操作
5.WI-FI状态机制
……..
Android状态机
StateMachine 是Android com.coreget.call.util下的一个类,是用来专门用来处理状态机的一个类,在FrameWork层有很多使用,比如蓝牙,WI-FI相关的状态机都有用到StateMachine!
StateMachine的使用
1.拷贝源码到自己的工程(没有开放)
2.写一个类继承StateMachine
3.定义自己的状态,并初始化状态:
class IdleState extends State {
@Over