偶尔看到StateMachine,这东西在Android中比较完美。

StateMachine是一个层次状态机(hierarchical state machine):一个状态可以有多个子状态的状态机。状态机中的状态须继承基类State,并实现成员函数processMessage,从而对收到的 Message进行处理;其它可选实现的成员函数为enter()、exit()和getName()。函数enter和exit相当于面向对象编程里的 “状态”的构造和析构函数。函数getName用于返回状态的名称,多用于调试目的。

状态机有多少子状态,可在构建状态机时,使用addState(State state, State parent)来添加所有的子状态,构建出一个层次状态关系。初始状态可由setInitialState函数指定。 使用者应调用StateMachine的start函数让状态机进入工作状态:初始化状态堆栈,调用初始状态(包括其父状态)的enter函数等。

摘自:http://www.redwolf-blog.com/?p=1021

1.找到一篇描述怎么使用状态机的文章,讲的很详细,还有例子代码:

应该是分析了StateMachine.java的注释之后翻译的,附件中放了这个类,以及State.java和IState.java

Android StateMachine分析

http://blog.csdn.net/lele_cheny/article/details/9289905

2.关于原理和源码分析请参考这篇文章:

Android学习 StateMachine与State模式

http://www.cnblogs.com/bastard/archive/2012/06/05/2536258.html

讲的很清晰,但是对于我来说,还不太明白使用的方式,以及内部存储的状态几点怎么就用map来完成了tree的存储呢?以后还得继续研究研究。

3.这篇文章讲述的不是很清晰,但是分析了源码过程比较仔细:

android状态机机制StateMachine

http://blog.csdn.net/myxmu/article/details/7917451

4.最后看到有本书里面讲述了这个内容:

深入理解Android:Telephony原理剖析与最佳实践

对应章节信息:

第8章 android手机上网实现机制 / 204 8.1 android网络整体结构 / 204 8.2 什么是dataconnection / 205 8.2.1 dataconnection类定义及子类 / 205 8.2.2 dataconnection类关键属性 / 206 8.2.3 dataconnection类的方法 / 207 8.2.4 5个数据连接对象的状态转换 / 207 8.3 statemachine状态机 / 208 8.3.1 state设计模式 / 209 8.3.2 statemachine核心类 / 209 8.3.3 statemachine运行机制 / 210 8.3.4 dataconnection使用state模式的运行机制 / 211 8.4 什么是apn / 212 

好嘛,好久没买书了,又该去西单了,哈哈。

更多相关文章

  1. android checkbox 未选中状态 已选中状态 替换成自己的图片
  2. Android改变状态栏statusbar背景色
  3. android调用高版本api函数的兼容性问题
  4. Android O system函数执行reboot命令失败
  5. Android状态机StateMachine使用举例及源码解析
  6. Android下使用dlopen函数动态调用.so链接库 [转]
  7. 【Android】沉浸式状态栏完美解决方案
  8. Android StaggeredGridLayoutManager布局RecyclerView在滚动状态
  9. android输入法状态控制

随机推荐

  1. 图解Android(安卓)- Binder 和 Service
  2. Android(安卓)Gallery 滑动停止监听方案
  3. Android之INSTALL_FAILED_INSUFFICIENT_S
  4. Android(安卓)7.0 判断是否支持多用户模
  5. Paint---Xfermode、 PixelXorXfermode
  6. android 自定义Toast,可设定显示时间
  7. Android使用Gradle进行打包混淆,包括依赖L
  8. android顶部导航条
  9. android - 利用View自身的setAnimation来
  10. Android(安卓)ApiDemos示例解析(4):App->