鸿蒙 Ark Ui UIAbility组件生命周期

前言:

各位同学有段时间没有见面 因为一直很忙所以就没有去更新博客。最近有在学习这个鸿蒙的ark ui开发 因为鸿蒙不是发布了一个鸿蒙next的测试版本 明年会启动纯血鸿蒙应用 所以我就想提前给大家写一些博客文章 今天要讲的是生命周期:

效果图 :

我们写了一个简单的demo 然后我在各个生命周期里面去打印日志

复制代码
import Logger from './Logger';

@Entry
@Component
struct Index {
  @Styles
  customMargin() {
    .margin({ left: 20, right: 20 })
  }
  @State message: string = 'Hello World'
  private controller: VideoController = new VideoController();
  build() {

    Row() {
      Column() {
        Video({
          // src: 'https://v.youku.com/v_show/id_XNTQwMTgxMTE2.html?tpa=dW5pb25faWQ9MTAzMDkzXzEwMDAwMV8wMV8wMQ&refer=sousuotoufang_market.qrwang_00002943_000000_qUv2En_19031900',
          src: $rawfile('video1.mp4'),
          previewUri: $r('app.media.image3'),
          controller: this.controller
        })
          .muted(false) //是否静音。默认值:false
          .controls(true)//不显示控制栏
          .autoPlay(false) // 手动点击播放
          .loop(false) // 关闭循环播放
          .objectFit(ImageFit.Cover) //设置视频显示模式。默认值:Cover
          .customMargin()// 样式
          .height(200) // 高度
      }
      .width('100%')
    }
    .height('100%')


  }


  aboutToAppear(){

    Logger.error("Videodemo --> aboutToAppear")

  }

  onPageShow?(){

    Logger.error("Videodemo --> onPageShow")

  }


  aboutToDisappear?(){
    Logger.error("Videodemo --> aboutToDisappear")

  }

  onPageHide?(){

    Logger.error("Videodemo --> onPageHide")
  }


  onBackPress?(){
    Logger.error("Videodemo --> onBackPress")

  }


}

查看日志 我们启动应用

首先会执行我们的 aboutToAppear 方法和 onPageShow

我们按home去到后台

这时候会执行我们的 onPageHide 方法 隐藏就是不可见 (类似安卓里面失去焦点 )

我们再次启动应用

这时候我们发现执行了 onPageShow 方法 我们又可以看到前台应用的界面 但是并没有执行 aboutToAppear 这里的aboutToAppear 在一个完整的生命周期只会执行一次

我们 再继续点击返回键退出应用

一共会执行我们 onBackPress 返回方法 onPageHide 隐藏生命周期方法 aboutToDisappear 销毁生命周期方法

我们打开界面 然后直接多任务杀死进程

如果我们按了多任务键 直接杀死进程 就会直接执行 aboutToDisappear 方法 而不是 依次执行 onBackPress onPageHide aboutToDisappear

整体流程

home键去到后台

点击返回键退出应用

点击多任务键杀死进程

最后总结 :

这个简单主要分析Ark ui 里面视图的生命周期 我们可以在适当回调方法里面去操作我们的逻辑 来实现对应需求 可以类比安卓activity 和iOS viewcontroller 去理解更好接受一点

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. ......

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门?:https://qr21.cn/FV7h05

  1. 基本概念
  2. 构建第一个ArkTS应用
  3. 构建第一个JS应用
  4. ......

开发基础知识:https://qr21.cn/FV7h05

  1. 应用基础知识
  2. 配置文件
  3. 应用数据管理
  4. 应用安全管理
  5. 应用隐私保护
  6. 三方应用调用管控机制
  7. 资源分类与访问
  8. 学习ArkTS语言
  9. ......

基于ArkTS 开发:https://qr21.cn/FV7h05

1.Ability开发

2.UI开发

3.公共事件与通知

4.窗口管理

5.媒体

6.安全

7.网络与链接

8.电话服务

9.数据管理

10.后台任务(Background Task)管理

11.设备管理

12.设备使用信息统计

13.DFX

14.国际化开发

15.折叠屏系列

16.......

相关推荐
Swift社区2 小时前
鸿蒙 App 模块化拆分:架构解析 + 实战案例
华为·架构·harmonyos
不羁的木木2 小时前
HarmonyOS AI开发提效工具:DevEco Code & DevEco CLI - 实战:端侧AI文字识别应用
人工智能·华为·harmonyos
不羁的木木3 小时前
HarmonyOS AI开发提效工具:DevEco Code & DevEco CLI - 初识与配置指南
人工智能·华为·harmonyos
鹤卿1239 小时前
(OC)UI学习——网易云仿写
ui·ios·objective-c
hahjee9 小时前
【鸿蒙PC】KCP应用集成:AtomCode驱动NAPI全流程
华为·harmonyos
木咺吟9 小时前
鸿蒙原生应用实战(五):塔罗牌App开发 — 数据模型、构建配置与工程优化
harmonyos
风华圆舞9 小时前
解析鸿蒙 SpeechRecognitionPlugin:从权限申请到识别回调的完整链路
华为·harmonyos
木咺吟9 小时前
鸿蒙原生应用实战(一):塔罗牌占卜App开发 — 环境搭建与首页开发
华为·harmonyos
木咺吟9 小时前
鸿蒙原生应用实战(二):塔罗牌App开发 — 牌义列表与路由导航
harmonyos
祭曦念10 小时前
【共创季稿事节】鸿蒙ArkTS图片插值布局实战
华为·harmonyos