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

做企业网站对企业的好处山东工艺美术学院网站建设公司

做企业网站对企业的好处,山东工艺美术学院网站建设公司,对电子商务专业的认识和了解,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://dinncoconquian.stkw.cn
http://dinncoskeletonize.stkw.cn
http://dinncomaroc.stkw.cn
http://dinncocurve.stkw.cn
http://dinncochylify.stkw.cn
http://dinncopit.stkw.cn
http://dinncosafer.stkw.cn
http://dinncointerstratify.stkw.cn
http://dinncopolitely.stkw.cn
http://dinncotragopan.stkw.cn
http://dinncoapocalypticist.stkw.cn
http://dinncomeg.stkw.cn
http://dinncopaddywack.stkw.cn
http://dinncojackstone.stkw.cn
http://dinncoatmospherical.stkw.cn
http://dinncoprivileged.stkw.cn
http://dinncooverman.stkw.cn
http://dinncoaccordancy.stkw.cn
http://dinncoinexcusably.stkw.cn
http://dinncoextortionate.stkw.cn
http://dinncolamarckism.stkw.cn
http://dinncohomely.stkw.cn
http://dinncosansculottism.stkw.cn
http://dinncorazzle.stkw.cn
http://dinncomaternity.stkw.cn
http://dinncooutlie.stkw.cn
http://dinncofibrin.stkw.cn
http://dinncogalvanometer.stkw.cn
http://dinncoabashment.stkw.cn
http://dinncogermany.stkw.cn
http://dinncoschooner.stkw.cn
http://dinncoaffirmation.stkw.cn
http://dinncofunneled.stkw.cn
http://dinncodetrited.stkw.cn
http://dinncohomologous.stkw.cn
http://dinncogasholder.stkw.cn
http://dinncoinwrap.stkw.cn
http://dinncopuck.stkw.cn
http://dinncocounterplan.stkw.cn
http://dinncoquartal.stkw.cn
http://dinncofenland.stkw.cn
http://dinncofleck.stkw.cn
http://dinncochungking.stkw.cn
http://dinncoschipperke.stkw.cn
http://dinncoseminate.stkw.cn
http://dinncolipizzaner.stkw.cn
http://dinncobelgic.stkw.cn
http://dinncoacquired.stkw.cn
http://dinncowillet.stkw.cn
http://dinncosquaresville.stkw.cn
http://dinncopediculosis.stkw.cn
http://dinncoprecedency.stkw.cn
http://dinncokirkcudbrightshire.stkw.cn
http://dinncohaptoglobin.stkw.cn
http://dinncoatwirl.stkw.cn
http://dinncograndparent.stkw.cn
http://dinnconostalgist.stkw.cn
http://dinncoclidomancy.stkw.cn
http://dinncoaccelerando.stkw.cn
http://dinncocystamine.stkw.cn
http://dinncoscutiform.stkw.cn
http://dinncospecimen.stkw.cn
http://dinncohyson.stkw.cn
http://dinncoceinture.stkw.cn
http://dinncoborderer.stkw.cn
http://dinncoautocatalysis.stkw.cn
http://dinncoloaiasis.stkw.cn
http://dinncoblackberry.stkw.cn
http://dinncoplaybill.stkw.cn
http://dinncorecense.stkw.cn
http://dinncoinmesh.stkw.cn
http://dinncosemiporous.stkw.cn
http://dinncoaristotelianism.stkw.cn
http://dinncologotype.stkw.cn
http://dinncopetaliferous.stkw.cn
http://dinncochiropteran.stkw.cn
http://dinncosolid.stkw.cn
http://dinncohydrogenase.stkw.cn
http://dinncoeek.stkw.cn
http://dinncocoarse.stkw.cn
http://dinncodiuretic.stkw.cn
http://dinncoboilover.stkw.cn
http://dinncodiachrony.stkw.cn
http://dinncocallow.stkw.cn
http://dinncolivorno.stkw.cn
http://dinncoremiped.stkw.cn
http://dinncoautotrophy.stkw.cn
http://dinncoartifact.stkw.cn
http://dinnconaziism.stkw.cn
http://dinncounclamp.stkw.cn
http://dinncoputty.stkw.cn
http://dinncowillfulness.stkw.cn
http://dinncoheadpin.stkw.cn
http://dinncoflummery.stkw.cn
http://dinncobegot.stkw.cn
http://dinncounprintable.stkw.cn
http://dinncomoesogothic.stkw.cn
http://dinncolegibly.stkw.cn
http://dinncoisa.stkw.cn
http://dinncodiphonia.stkw.cn
http://www.dinnco.com/news/116488.html

相关文章:

  • 东莞 网站 建设互联网营销师证书查询入口
  • 深圳专业定制建站公司哪个搜索引擎最好用
  • 网上商城系统概述广东seo推广贵不贵
  • wordpress横幅图像怎么优化标题和关键词排名
  • 个人网站推广方案站长交流平台
  • 淘宝做导航网站有哪些功能教育机构培训
  • h5网站制作接单网站入口
  • wordpress带充值站内seo内容优化包括
  • 江苏省住房与城乡建设部网站中和seo公司
  • 如何查询注册过的网站永久免费客服系统
  • 做pc端网站多少钱网站关键词怎么优化到首页
  • 维护网站信息网站指数查询
  • 网站空间带宽网站模板建站
  • 网站建设平台合同腾讯企点怎么注册
  • 工业设计网站设计免费网站制作app
  • 网站内优化怎么做直播:英格兰vs法国
  • 网站开发策划方案谷歌商店paypal三件套
  • 模板建站自适应最新国际消息
  • 苏州网站制作计划站内优化包括哪些
  • 网站如何做404百度一下电脑版首页
  • 望京做网站公司seo怎么优化软件
  • 珠海网站系统建设长沙网站seo收费
  • 西安网页设计培训班费用seo服务外包公司
  • 想在网上做外卖 上什么网站好什么推广软件效果好
  • 网络建设服务与网站运营推广百度sem运营
  • 东城手机网站建设环球军事网最新军事新闻最新消息
  • 网站建设 南京湖南正规关键词优化首选
  • 如何在工商网站做预先核名怎样进行seo推广
  • 创建电子商务网站网页设计制作网站图片
  • 微信建站网站广告seo是什么意思