美文网首页
HarmonyOS——Ability和AbilitySlice生

HarmonyOS——Ability和AbilitySlice生

作者: 小书同学 | 来源:发表于2021-06-10 17:15 被阅读0次

  HarmonyOS 中的页面会用到Ability和AbilitySlice。Ability是提供与用户交互的能力。AbilitySlice是一个页面及其逻辑的总和。两者的关系可以是一对多。也就是一个Ability中可以包含多个不同的AbilitySlice,可以在一个Ability中实现Ability间的跳转。
  对于Ability和AbilitySlice都有自己的生命周期,而由于两者的联系,两者的生命周期又是有关联的。现在举例说明其中的生命周期流程。
  这次的demo只针对一个Ability中含有一个AbilitySliced来分析生命周期。

Ability的生命周期

以下是官方给的Page的生命周期


截屏2021-06-10 下午4.32.24.png

图中基本包含了Ability的主要生命周期的回调。

AbilitySlice的生命周期

  AbilitySlice是Ability的组成部分,其生命周期依托于其所在的Ability的生命周期。AbilitySlice和Ability有相同的生命周期状态和同名的回调函数,当Ability的生命周期发生变化时,其AbilitySlice的生命周期也会发生对应的变化。但是,AbilitySlice还具有独立的生命周期,当一个Ability含有多个AbilitySlice的时候,如果AbilitySlice在Ability内部进行切换的时候,Ability的生命周期不发生变化,AbilitySlice的生命周期却会发生变化。

demo思路

  为了研究生命周期变化,创建两个页面PageA和PageB,每个Page就是一个Ability和AbilitySlice。然后在PageA中有一个button,button点击跳转到PageB中。
  以下是在不同页面停留时的生命周期输出。
  1、显示PageA页面

截屏2021-06-10 下午3.29.20.png
  说明:图中,Ability和AbilitySlice的生命周期基本一致,只是在Ability中,会多2个回调:onPostStart和onPostActive。对于这两个方法,官方文档的解释就是当Ability的onStart()和onActive()后的例行操作,建议不需要复写此两个方法,这里我们就忽略。

  2、从PageA跳转到PageB页面

截屏2021-06-10 下午3.29.14.png
  • 图中包含了创建PageA时的生命周期。
  • 当点击按钮跳转到PageB时,PageA的状态变成\color{red}{InActive};
  • 开始PageB的生命周期,PageB的生命周期和上面PageA的生命周期一致,最后PageB的状态变为\color{red}{Active}
  • PageA的状态变为\color{red}{Background}

  3、从PageB退回到PageA页面

截屏2021-06-10 下午3.29.09.png
  • 说明:我们只关注”点击返回按钮“后的情况。
  • 当点击返回按钮是时,PageB的状态变为\color{red}{InActive};
  • PageA的生命状态还处在\color{red}{Background},然后回调\color{blue}{onForeground},最后PageA的状态由\color{red}{Background}变成\color{red}{Active}
  • PageB的状态变为\color{red}{Background},最后再变成\color{red}{Stop}被销毁。

  整个页面流程就是PageA ——> PageB ,再有PageB ——> PageA。里面包含了对应的AbilitySlice的回调处理。
  后续将补充关于在PageA中出现AbilitySlice切换的情况,在切换的情况下,对应的不同AbilitySlice的回调又是如何……

HarmonyOs Demo地址

相关文章

网友评论

      本文标题:HarmonyOS——Ability和AbilitySlice生

      本文链接:https://www.haomeiwen.com/subject/kztpeltx.html