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

江宁招网站建设58河南省建筑一体化平台官网

江宁招网站建设58,河南省建筑一体化平台官网,前端开发,手机创建网页快捷方式应用启动框架AppStartup 概述 AppStartup提供了一种更加简单高效的初始化组件的方式,支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的组件实现AppStartup提供的[StartupTask]接口,并在[startup_config]中配置App…

应用启动框架AppStartup

概述

AppStartup提供了一种更加简单高效的初始化组件的方式,支持异步初始化组件加速应用的启动时间。使用启动框架应用开发者只需要分别为待初始化的组件实现AppStartup提供的[StartupTask]接口,并在[startup_config]中配置AppStartup之间的依赖关系,启动框架将使用拓扑排序保证各个待初始化组件的初始化顺序。启动框架只支持在entry中使用。

添加配置

应用需要在[module.json5配置文件]中配置appStartup标签, 并指定启动框架的配置文件路径。

{"module": {"name": "entry","type": "entry",..."appStartup": "$profile:startup_config",...}
}

添加启动框架配置文件

应用需要在工程的resource目录下添加启动框架的配置文件,配置文件路径需要与[module.json5配置文件]中appStartup标签指定的路径一致。

示例代码如下所示。

{"startupTasks": [{"name": "StartupTask_001","srcEntry": "./ets/startup/StartupTask_001.ets","dependencies": ["StartupTask_002","StartupTask_003"],"runOnThread": "taskPool","waitOnMainThread": false},{"name": "StartupTask_002","srcEntry": "./ets/startup/StartupTask_002.ets","dependencies": ["StartupTask_004"],"runOnThread": "taskPool","waitOnMainThread": false},{"name": "StartupTask_003","srcEntry": "./ets/startup/StartupTask_003.ets","runOnThread": "taskPool","waitOnMainThread": false},{"name": "StartupTask_004","srcEntry": "./ets/startup/StartupTask_004.ets","runOnThread": "taskPool","waitOnMainThread": false},{"name": "StartupTask_005","srcEntry": "./ets/startup/StartupTask_005.ets","runOnThread": "mainThread","waitOnMainThread": true},{"name": "StartupTask_006","srcEntry": "./ets/startup/StartupTask_006.ets","runOnThread": "mainThread","waitOnMainThread": false,"excludeFromAutoStart": true}],"configEntry": "./ets/startup/StartupConfig.ets"
}

startup_config配置文件标签说明

属性名称含义数据类型是否可缺省
startupTasks待初始化组件配置信息。对象数组该标签不可缺省。
configEntry[StartupConfig]文件路径。字符串该标签不可缺省。

startupTasks标签说明

属性名称含义数据类型是否可缺省
name待初始化组件实现[StartupTask]接口的类名称。对象数组该标签不可缺省。
srcEntry需要加载的组件实现[StartupTask]接口的文件路径。字符串该标签不可缺省。
dependencies当前组件所依赖组件实现[StartupTask]接口的类名称数组。对象数组该标签可缺省,缺省值为空。
excludeFromAutoStart是否排除自动模式。 - true:手动模式。 - false:自动模式。布尔值该标签可缺省,缺省值为false。
waitOnMainThread是否在主线程等待。 - true:主线程等待组件初始化。 - false:主线程不等待组件初始化。布尔值该标签可缺省,缺省值为true。
runOnThread执行初始化所在的线程。 - mainThread:在主线程中执行。 - taskPool:在异步线程中执行。字符串该标签可缺省,缺省值为mainThread

添加启动框架组件

所有待加载组件均要实现[StartupTask]接口,文件放置在工程的ets目录下的startup文件夹下,StartupTask必须添加[Sendable]注解。

import StartupTask from '@ohos.app.appstartup.StartupTask';
import common from '@ohos.app.ability.common';
import hilog from '@ohos.hilog';@Sendable
export default class StartupTask_001 extends StartupTask {constructor() {super();}async init(context: common.AbilityStageContext) {hilog.info(0x0000, 'testTag', 'StartupTask_001 init.');return 'StartupTask_001';}onDependencyCompleted(dependence: string, result: Object): void {hilog.info(0x0000, 'testTag', 'StartupTask_001 onDependencyCompleted, dependence: %{public}s, result: %{public}s',dependence, JSON.stringify(result));}
}

添加启动框架配置

应用需要在工程的ets目录下的startup文件夹下添加启动框架配置,开发者可以在该文件中配置超时时间以及组件初始化的监听器,启动框架配置需要在[StartupConfigEntry]中设置[StartupConfig]与[StartupListener]。

import StartupConfig from '@ohos.app.appstartup.StartupConfig';
import StartupConfigEntry from '@ohos.app.appstartup.StartupConfigEntry';
import StartupListener from '@ohos.app.appstartup.StartupListener';
import hilog from '@ohos.hilog';
import { BusinessError } from '@ohos.base';export default class MyStartupConfigEntry extends StartupConfigEntry {onConfig() {hilog.info(0x0000, 'testTag', `onConfig`);let onCompletedCallback = (error: BusinessError<void>) => {hilog.info(0x0000, 'testTag', `onCompletedCallback`);if (error) {hilog.info(0x0000, 'testTag', 'onCompletedCallback: %{public}d, message: %{public}s', error.code, error.message);} else {hilog.info(0x0000, 'testTag', `onCompletedCallback: success.`);}}let startupListener: StartupListener = {'onCompleted': onCompletedCallback}let config: StartupConfig = {'timeoutMs': 10000,'startupListener': startupListener}return config;}
}

启动组件

AppStartup分别提供了自动和手动两种方式来初始化组件,应用开发者可以根据自己的需求选择合适的初始化方式。

手动模式

手动模式需要应用开发者手动调用[StartupManager]中的[run]方法来手动启动组件的初始化。

import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@ohos.base';
import startupManager from '@ohos.app.appstartup.startupManager';export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');let startParams = ['StartupTask_006'];try {startupManager.run(startParams).then(() => {console.log('StartupTest startupManager run then, startParams = ');}).catch((error: BusinessError) => {console.info("StartupTest promise catch error, error = " + JSON.stringify(error));console.info("StartupTest promise catch error, startParams = "+ JSON.stringify(startParams));})} catch (error) {let errMsg = JSON.stringify(error);let errCode: number = error.code;console.log('Startup catch error , errCode= ' + errCode);console.log('Startup catch error ,error= ' + errMsg);}}...
}

自动模式

自动模式应用开发者需要将[startup_config]中的excludeFromAutoStart标签设置为false,当应用启动时启动框架会在abilityStage的onCreate前执行组件初始化。

{"startupTasks": [{"name": "StartupTask_001",..."excludeFromAutoStart": false},...],...
}
http://www.yayakq.cn/news/671817/

相关文章:

  • 网站建设公司上海海沧区建设局网站 破路申请
  • siteserver cms网站访问量sem是什么
  • 长安网站设计推广网络营销外包公司
  • 网站可信认证DW做的网站怎么弄兼容性
  • 线上企业订单管理系统网站网站设计制作报价图片
  • 重庆网站推广外包企业最新热点新闻事件
  • 网站开发项目的设计与实现wordpress采集网页文章
  • 南京网站制作平台网络推广培训资料
  • 网站 搜索怎么实现佛山app开发公司
  • 网站建设费挂什么科目企业进行网站建设的方式
  • 做暧昧的小视频网站2网站建设石家庄
  • 商城网站作品3合1网站建设电话
  • 怎样将视频放在网站里做咖啡网站建设的需求分析
  • wordpress网站使用成都网页制作
  • 网站app建设需要资源快速的网站开发工具
  • 公司网站开发软件公司宣传册设计与制作模板
  • 网站开发与硬件合同WordPress建网盘
  • 做网站花钱么微官网招聘系统
  • 公司做网站比较好的网站建设情况的自查报告
  • 如何用ps做网站导航条西安网站建设哪家
  • 排版设计网站python 做电商网站
  • 域名绑定空间后 一般多久能打开网站重庆能创科技有限公司
  • 一般做企业网站需要什么宜宾建设局网站
  • 外贸网站平台哪个好cms监控系统电脑版
  • 一屏一屏的网站怎么做广州手机网站开发
  • 政务内网网站群建设wordpress怎么导入自己的php
  • 湖北正规网站建设检修网站设计风格方案
  • 网站建立需要什么条件房产网手机版网站建设目标
  • 安徽伟诚建设工程有限公司网站电子邮件无法发送wordpress
  • 网站浮动窗口代码百度竞价ocpc