当前位置: 首页 > news >正文

长春网站网站建设自评报告

长春网站,网站建设自评报告,广告设计公司网站源码,网站升级维护需要多久一、背景 主要梳理下鸿蒙系统开发中常用的生命周期 二、UIAbility组件 UIAbility组件是一种包含UI界面的应用组件#xff0c;主要用于和用户交互。 UIAbility组件是系统调度的基本单元#xff0c;为应用提供绘制界面的窗口#xff1b;一个UIAbility组件中可以通过多个页…一、背景 主要梳理下鸿蒙系统开发中常用的生命周期 二、UIAbility组件  UIAbility组件是一种包含UI界面的应用组件主要用于和用户交互。 UIAbility组件是系统调度的基本单元为应用提供绘制界面的窗口一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例都对应于一个最近任务列表中的任务。 2.1、UIAbility组件生命周期 当用户打开、切换和返回到对应应用时应用中的UIAbility实例会在其生命周期的不同状态之间转换。 UIAbility的生命周期包括Create、Foreground、Background、Destroy四个状态如下图所示。 2.2、生命周期状态说明 2.2.1、Create状态 在应用加载过程中UIAbility实例创建完成时触发系统会调用onCreate()回调。可以在该回调中进行页面初始化操作例如变量定义资源加载等用于后续的UI界面展示。 2.2.2、WindowStageCreate和WindowStageDestroy状态 UIAbility实例创建完成之后在进入Foreground之前系统会创建一个WindowStage。WindowStage创建完成后会进入onWindowStageCreate()回调可以在该回调中设置UI界面加载、设置WindowStage的事件订阅。 2.2.3、Foreground和Background状态  Foreground和Background状态分别在UIAbility实例切换至前台和切换至后台时触发对应于onForeground()回调和onBackground()回调。 onForeground()回调在UIAbility的UI界面可见之前如UIAbility切换至前台时触发。可以在onForeground()回调中申请系统需要的资源或者重新申请在onBackground()中释放的资源。 onBackground()回调在UIAbility的UI界面完全不可见之后如UIAbility切换至后台时候触发。可以在onBackground()回调中释放UI界面不可见时无用的资源或者在此回调中执行较为耗时的操作例如状态保存等。 2.2.4、Destroy状态 Destroy状态在UIAbility实例销毁时触发。可以在onDestroy()回调中进行系统资源的释放、数据的保存等操作。 三、页面和自定义组件生命周期 3.1、先明确自定义组件和页面的关系 ①自定义组件Component装饰的UI单元可以组合多个系统组件实现UI的复用可以调用组件的生命周期。 ②页面即应用的UI页面。可以由一个或者多个自定义组件组成Entry装饰的自定义组件为页面的入口组件即页面的根节点一个页面有且仅能有一个Entry。只有被Entry装饰的组件才可以调用页面的生命周期。 3.2、页面生命周期 onPageShow页面每次显示时触发一次包括路由过程、应用进入前台等场景。 onPageHide页面每次隐藏时触发一次包括路由过程、应用进入后台等场景。 onBackPress当用户点击返回按钮时触发。 3.3、组件生命周期 ①aboutToAppear组件即将出现时回调该接口具体时机为在创建自定义组件的新实例后在执行其build()函数之前执行。 ②aboutToDisappear在自定义组件析构销毁之前执行。不允许在aboutToDisappear函数中改变状态变量特别是Link变量的修改可能会导致应用程序行为不稳定。 以下示例展示了生命周期的调用时机示例来自于官网文档中心 // Index.ets import router from ohos.router;Entry Component struct MyComponent {State showChild: boolean true;// 只有被Entry装饰的组件才可以调用页面的生命周期onPageShow() {console.info(Index onPageShow);}// 只有被Entry装饰的组件才可以调用页面的生命周期onPageHide() {console.info(Index onPageHide);}// 只有被Entry装饰的组件才可以调用页面的生命周期onBackPress() {console.info(Index onBackPress);}// 组件生命周期aboutToAppear() {console.info(MyComponent aboutToAppear);}// 组件生命周期aboutToDisappear() {console.info(MyComponent aboutToDisappear);}build() {Column() {// this.showChild为true创建Child子组件执行Child aboutToAppearif (this.showChild) {Child()}// this.showChild为false删除Child子组件执行Child aboutToDisappearButton(delete Child).onClick(() {this.showChild false;})// push到Page2页面执行onPageHideButton(push to next page).onClick(() {router.pushUrl({ url: pages/Page2 });})}} }Component struct Child {State title: string Hello World;// 组件生命周期aboutToDisappear() {console.info([lifeCycle] Child aboutToDisappear)}// 组件生命周期aboutToAppear() {console.info([lifeCycle] Child aboutToAppear)}build() {Text(this.title).fontSize(50).onClick(() {this.title Hello ArkUI;})} } 以上示例中Index页面包含两个自定义组件一个是被Entry装饰的MyComponent也是页面的入口组件即页面的根节点一个是Child是MyComponent的子组件。只有Entry装饰的节点才可以使页面级别的生命周期方法生效所以MyComponent中声明了当前Index页面的页面生命周期函数。MyComponent和其子组件Child也同时也声明了组件的生命周期函数。 应用冷启动的初始化流程为MyComponent aboutToAppear -- MyComponent build -- Child aboutToAppear -- Child build -- Child build执行完毕 -- MyComponent build执行完毕 -- Index onPageShow。点击“delete Child”if绑定的this.showChild变成false删除Child组件会执行Child aboutToDisappear方法。 点击“push to next page”调用router.pushUrl接口跳转到另外一个页面当前Index页面隐藏执行页面生命周期Index onPageHide。此处调用的是router.pushUrl接口Index页面被隐藏并没有销毁所以只调用onPageHide。跳转到新页面后执行初始化新页面的生命周期的流程。如果调用的是router.replaceUrl则当前Index页面被销毁执行的生命周期流程将变为Index onPageHide -- MyComponent aboutToDisappear -- Child aboutToDisappear。上文已经提到组件的销毁是从组件树上直接摘下子树所以先调用父组件的aboutToDisappear再调用子组件的aboutToDisappear然后执行初始化新页面的生命周期流程。点击返回按钮触发页面生命周期Index onBackPress且触发返回一个页面后会导致当前Index页面被销毁。最小化应用或者应用进入后台触发Index onPageHide。当前Index页面没有被销毁所以并不会执行组件的aboutToDisappear。应用回到前台执行Index onPageShow。 退出应用执行Index onPageHide -- MyComponent aboutToDisappear -- Child aboutToDisappear。
http://www.hkea.cn/news/14495251/

相关文章:

  • 仙居县建设规划局网站西城专业网站建设公司哪家好
  • 茌平微网站建设建站小程序快速上线
  • 服装网站建设前期规划方案中山网站制作专业
  • 平面设计素材免费网站有哪些凡科网站怎么做友情链接
  • 网站积分商城该怎么建立seo和sem分别是什么
  • 网站建设中图片做电商网站的参考书
  • wap手机网站开发asp经验做企业网站的公司
  • 江苏网站备案流程专业做网盘资源收录分享的网站
  • 建站快车网站建设英文翻译
  • 大型网站得多少钱企业网站的建设哪家比较好
  • 深圳建站公司哪个济南兴田德润简介做刀网站
  • 重庆自助建站模板网站主色怎么选择
  • wordpress建站配置个人网站域名怎么取
  • 有哪些手机网站杭州小程序搭建
  • 大德通众包网站建设做的网站如何更换网站模板
  • 什么样的公司愿意做网站企业网站建设费用深圳
  • m域名网站安全吗广西建设厅网站彭新唐
  • 网站平台怎么建设做网站电话销售说辞
  • 建设网站去哪里找网站设计论文前言怎么写
  • 大学同学会网站建设方案济宁网站网站建设
  • 直播平台网站开发长链接在线转化短链接
  • 网站怎么提升流量四川聚顺成网络科技有限公司
  • 做好的网站怎么演示深圳做美颜相机的公司
  • 香水网站建设规划书制作网站的技术
  • 网站源码资源中企动力邮箱
  • 公司建设网站温州专业微网站制作价格
  • 网站 建设 成品七台河新闻综合
  • 网站投放广告多少钱云搜索
  • 大连网站哪家做的好老房改造 装修公司
  • 做网站需要了解什么辽宁省建设工程造价总站网站