各位同学有段时间没有见面 因为一直很忙所以就没有去更新博客。最近有在学习这个鸿蒙的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
这时候会执行我们的 onPageHide 方法 隐藏就是不可见 (类似安卓里面失去焦点 )
这时候我们发现执行了 onPageShow 方法 我们又可以看到前台应用的界面 但是并没有执行 aboutToAppear 这里的aboutToAppear 在一个完整的生命周期只会执行一次
一共会执行我们 onBackPress 返回方法 onPageHide 隐藏生命周期方法 aboutToDisappear 销毁生命周期方法
如果我们按了多任务键 直接杀死进程 就会直接执行 aboutToDisappear 方法 而不是 依次执行 onBackPress onPageHide aboutToDisappear
这个简单主要分析Ark ui 里面视图的生命周期 我们可以在适当回调方法里面去操作我们的逻辑 来实现对应需求 可以类比安卓activity 和iOS viewcontroller 去理解更好接受一点
为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
https://qr21.cn/FV7h05
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.……