今天我们就来给大家介绍一下Page Ability生命周期相关内容,同学们记得带好小本本。

Page Ability生命周期

系统管理或用户操作等行为均会引起Page实例在其生命周期的不同状态之间进行转换。Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放资源),这有助于提升应用的性能和稳健性。

Page生命周期回调

Page生命周期的不同状态转换及其对应的回调,如图所示

Page生命周期和状态会经历以下这些过程:

onStart()初始化(INITIAL):当系统首次创建Page实例时,触发该回调,对于一个Page实例,该回调在其生命周期过程中仅仅触发一次,Page在该逻辑后进入INACTIVE(不活动的)状态,开发者必须要重写该方法,并在此配置默认展示的AbilitySlice

onActive():Page会在进入INACTIVE状态后来到前台,然后系统调用此回调。Page在此之后进入ACTIVE状态,该状态是应用与用户交互的状态。Page将保持在此状态,除非某类事件发生导致Page失去焦点,比如用户点击返回键或导航到其他Page。当此类事件发生时,会触发Page回到INACTIVE状态,系统将调用onInactive()回调。此后,Page可能重新回到ACTIVE状态,系统将再次调用onActive()回调。因此,开发者通常需要成对实现onActive()和onInactive(),并在onActive()中获取在onInactive()中被释放的资源。

onInactive():当Page失去焦点时,系统将调用此回调,此后Page进入INACTIVE状态。开发者可以在此回调中实现Page失去焦点时应表现的恰当行为。

onBackground():如果Page不再对用户可见,系统将调用此回调通知开发者用户进行相应的资源释放,此后Page进入BACKGROUND状态。开发者应该在此回调中释放Page不可见时无用的资源,或在此回调中执行较为耗时的状态保存操作。

onForeground():处于BACKGROUND状态的Page仍然驻留在内存中,当重新回到前台时(比如用户重新导航到此Page),系统将先调用onForeground()回调通知开发者,而后Page的生命周期状态回到INACTIVE状态。开发者应当在此回调中重新申请在onBackground()中释放的资源,最后Page的生命周期状态进一步回到ACTIVE状态,系统将通过onActive()回调通知开发者用户。

onStop():系统将要销毁Page时,将会触发此回调函数,通知用户进行系统资源的释放。销毁Page的可能原因包括以下几个方面:用户通过系统管理能力关闭指定Page,例如使用任务管理器关闭Page。用户行为触发Page的terminateAbility()方法调用,例如使用应用的退出功能。配置变更导致系统暂时销毁Page并重建。系统出于资源管理目的,自动触发对处于BACKGROUND状态Page的销毁。

如何测试Page Ability的生命周期呢?主要是看Page Ability和AbilitySlice之间的生命周期状态是如何切换的。我们用以下代码来测试一下。

MainAbility代码:

MainAbilitySlice代码:

以上就是这一期的鸿蒙开发教程了,下一期我们继续介绍一下AbilitySlice之间的回传值,感兴趣的同学记得关注一下。

本文来自千锋教育,转载请注明出处。

Page Ability生命周期内容介绍!相关推荐

  1. 【鸿蒙 HarmonyOS】Ability 简介 ( 简介 | 创建应用 | Page Ability 生命周期 )

    文章目录 一.Ability 简介 二.创建应用 三.Page Ability 生命周期 参考文档 : Page Ability 基本概念 Page Ability 声明周期 AbilitySlice ...

  2. 四、华为鸿蒙HarmonyOS应用开发之Java开发下Page Ability生命周期

    系统管理或用户操作等行为均会引起Page实例在其生命周期的不同状态之间进行转换.Ability类提供的回调机制能够让Page及时感知外界变化,从而正确地应对状态变化(比如释放资源),这有助于提升应用的 ...

  3. 开源博客QBlog开发者视频教程:生命周期Page_Load介绍及简洁传递参数的重构方式(四)...

    2019独角兽企业重金招聘Python工程师标准>>> 前言: 两三天没出视频了,主要是接下来的视频不好录制[给自己找个借口,其实顺路看了两天动漫], 当然中间也在一直想怎么录,怎么 ...

  4. Page 的生命周期学习小结

    (以前我在 csdn 写的翻译文章,现在转到这里来.) Page 的生命周期学习小结 原文链接:Page Events: Order and PostBack 作者:Paul Wilson 翻译:木野 ...

  5. Android四大基本组件和生命周期的介绍

    Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器. 一:了解四大基本组件 Activity ...

  6. java applet的生命周期_Java Applet的生命周期是什么?生命周期方法介绍

    Java Applet的生命周期是什么?本篇文章就给大家介绍一下Applet的生命周期,让大家了解Applet的生命周期中5种状态及其对应的方法分别是什么,希望对你们有所帮助. Java Applet ...

  7. 16_Android生命周期再介绍,通过androidconfigChanges属性让界面旋转时不改变状态中保留的值

     A  android:configChanges属性 对android:configChanges属性,一般认为有以下几点: 1 不设置Activity的android:configChange ...

  8. Android生命周期帮助类,Android Service类与生命周期详细介绍_Android_脚本之家

    Android  Service类与生命周期 Service是Android四大组件与Activity最相似的组件,都代表可执行的程序,区别在于Service一直在后台运行且没有用户界面. 1.Ser ...

  9. react生命周期详细介绍

    目录 挂载:在组件实例被创建并插入到dom中时,生命周期调用顺序如下 constructor componentWillMount getDerivedStateFromProps render co ...

最新文章

  1. tornado缓存技术
  2. netstat -ano 查看机器端口占用情况
  3. C语言经典例80-猴子分桃
  4. 构建之法第三章软件工程师的成长
  5. eclipse svn插件安装_Visual SVN和Tortoise SVN的安装简单使用汉化
  6. MySQL-日志、完全备份恢复和增量备份恢复
  7. mysql执行动态说起来_MySQL实战45讲学习笔记:第十四讲
  8. 【java】监听器的使用
  9. 机器视觉——目标跟踪
  10. 北大计算机应用基础考研,北大考研辅导班-2021北京大学622计算机应用基础考研经验...
  11. 计算机分区无法删除,电脑硬盘分区无法修改的解决方法分析
  12. 木耳炒什么好吃 木耳的做法
  13. JS初学者使用jQuery开发一款弹幕射击游戏
  14. Linux Ubuntu NVIDIA双显卡切换intel显卡方法, 如果无法正常切换
  15. 46000\46001\46002\MNC\MCC\IMSI
  16. 算法设计与分析之数字三角形问题(C++解法)
  17. java佳沃贴吧,十年沉淀 — 2019“JAVA(佳沃)杯”第十届凤凰山山地自行车挑战赛...
  18. echarts折线图鼠标悬浮竖线_Echarts折线图问题,鼠标悬停的地方不能正确展示数据怎么回事呢?...
  19. SPP中Supersession与Item Sourcing Rule的关系
  20. 2019年团体程序设计天梯赛总结

热门文章

  1. ACM-ICPC 2018 徐州赛区网络预赛
  2. yii2 java_YII2 自定义日志路径
  3. SpringBoot 自定义starter 保姆级教程(说明+源码+配置+测试)
  4. opencv python3 找图片色块_Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理...
  5. MyBatis Plus——自定义配置——自定义属性——注入时间
  6. Python基础day08【面向对象(类、对象、属性)、魔方方法(init、str、del、repr)】
  7. Python实训day03am【sort、函数式编程、过滤器、lambda、文本文件读写】
  8. Python实训day02pm【元组、字典、lambda】
  9. Matlab常用的11个快捷键【注释、自动对齐、跳转指定行、设置标签and断点、自动补全、历史命令、强制中断运行、退出、单行注释转多行】
  10. Java06-day06【Debug(概述、操作流程)、Debug查看偶数求和、Debug查看方法调用】