有限状态机(StateMachine)学习总结

状态机定义

有限状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。
状态机他解决的问题是,在一个系统(比如电梯),系统运行时有多个状态,在状态、事件间切换。
另外一个方面是状态之间的层级关系,如果电梯上行,必须先检查是否关门,如果没有,那么发送关门信息。
下图是短信发送状态机的结构图:
有限状态机(StateMachine)学习总结_第1张图片
在这个图中,默认状态是全局父状态,它下面的子状态分别是,启动状态、空闲状态、传输状态;传输状态的子状态是等待状态。下面详细说明各状态所作的事情。
默认状态:当本状态接受到EVENT_UPDATE_PHONE_OBJECT消息后,更新Phone对象(onUpdatePhoneObject((Phone) msg.obj););
启动状态:当消息EVENT_NEW_SMS、EVENT_INJECT_SMS、EVENT_BROADCAST_SMS将他们存储到状态机消息队列中,让其他状态去处理,最终会交给传输状态处理。
空闲状态:将消息EVENT_NEW_SMS、EVENT_INJECT_SMS、EVENT_BROADCAST_SMS缓存,并切换到传输状态。
传输状态:处理短信的发送,短信广播发送等。
等待状态:当EVENT_BROADCAST_SMS,缓存消息,当 EVENT_BROADCAST_COMPLETE时发生消息EVENT_RETURN_TO_IDLE,切换到空闲状态。


Android 状态机实现分析

源码在Google服务器。未时可以访问我的Github。

你可能感兴趣的:(程序优化)