您好,登录后才能下订单哦!
本文小编为大家详细介绍“Android的状态有什么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android的状态有什么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
状态可以有一个入口行为。如果定义了这个行为,每当通过外部迁移进入状态的时候它就会被执行。另外,状态也可以有一个关联的退出行为,如果被定义了这个行为,每当状态退出的时候它就会被执行。
状态也可以拥有一个doActivity行为。这个行为在状态进入时开始执行(但必须在状态入口行为执行结束之后)并且和其他任何与状态关联的行为同时执行。直到:
· it completes (in which case a completion event is generated) or
它自己结束了(这种情况下会生成一个完了事件)
· the State is exited, in which case execution of the doActivity Behavior is aborted.
状态退出了,这种情况下doActivity行为的执行被中断。
The execution of a doActivity Behavior of a State is not affected by the firing of an internal Transition of that State.
状态的doActivity行为的执行不会被状态的内部迁移触发。
历史状态
历史状态的概念是被DavidHarel引入到原始的状态图体系中来的。这是一个与组合状态中区域有关的便利的概念,通过这个概念一个区域可以保持自己前一次退出时的状态构成的痕迹。如果愿意,就可以以一种容易的方式在下次状态被激活,或者存在一个返回历史状态的局部迁移时恢复到同样的状态构成(例如从中断处理返回)。这可以通过使迁移终止于一个区域中的希望类型的历史伪状态而简单地完成。这种方式的优点在于,当用户有需求时不需要准确地保持状态构成的痕迹。结果就是更加简单的状态机模型。
有两种类型的历史伪状态。深历史(deepHistory)代表的是包含它的区域的完整的状态构成。其效果使终止于deepHistory历史伪状态的迁移产生的效果等同于如同迁移终止于被保存的状态构成的最里层中的某个子状态,也包括沿途遇到的所有入口行为的执行。浅历史(shallowHistory)代表的是返回最近状态构成的最上层子状态,进入时适用于缺省的进入规则。
有一种情况,状态没有被进入过(即不存在之前的历史)或者已经到达了终止状态,如果存在与终止于历史伪状态上的迁移,可以使用缺省历史机制使之强制迁移到一个特定的子状态。这是一个起始于历史伪状态,终止于包含该历史伪状态的区域中的一个特定顶点(缺省历史状态)的迁移。这个迁移只有执行到历史伪状态而且状态从来没有被激活过的情况下才会发生。否则进入区域的适当的历史入口行为将被执行(见上文)。如果没有定义缺省的历史迁移,那么标准的区域缺省入口行为会像后面将要解释的那样被执行。
延期事件
状态可以定义一套在该状态中被延迟的时间类型。这意味着只要状态维持活动,那些类型的事件就不会发生,直到:
一个状态构成到达了这些事件类型不在被延迟的位置。
如果一个延迟事件被明确地用在了以延迟状态(一种覆盖选项)为源的迁移的触发条件中。
一个事件可以被组合状态或子状态机状态延迟,只要组合状态仍处于活动的状态构成中,它就继续被延迟。
读到这里,这篇“Android的状态有什么用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。