HarmonyOS 应用启动框架AppStartup问题

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/app-startup-V5

参照该文档,编写启动框架最终运行提示错误:MyStartupTask: startup task is null or context is null.

task定义如下(ts文件):

import StartupTask from '@ohos.app.appstartup.StartupTask';

export default class MyStartupTask extends StartupTask {
  async init(context) {
    console.info("StartupTest Sample_001 init");
  }

  onDependencyCompleted(dependence: string, result) {
    console.info("StartupTest Sample_001 onDependencyCompleted dependence=" + dependence);
  }
}

config定义如下(ts文件):

import StartupConfig from '@ohos.app.appstartup.StartupConfig';
import StartupConfigEntry from '@ohos.app.appstartup.StartupConfigEntry';
import StartupListener from '@ohos.app.appstartup.StartupListener';

export default class MyStartupConfigEntry extends StartupConfigEntry {
  onConfig() {
    console.log('StartupTest MyStartupConfigEntry onConfig');
    let onCompletedCallback = (error) => {
      console.log('StartupTest MyStartupConfigEntry callback, error=' + JSON.stringify(error));
      if (error) {
        console.log('onCompletedCallback: %{public}d, mssage: %{public}s', error.code, error.message);
      } else {
        console.log('onCompletedCallback: success');
      }
    }
    let startupListener: StartupListener = {
      'onCompleted': onCompletedCallback
    }
    let config: StartupConfig = {
      'timeoutMs': 5000,
      'startupListener': startupListener
    }
    return config;
  }
}

startup.config 定义如下:

{
  "startupTasks": [
  {
    "name": "MyStartupTask",
  "srcEntry": "./ets/startup/MyStartupTask.ts",
  "excludeFromAutoStart": true
  }
  ],
  "configEntry": "./ets/startup/MyStartupConfigEntry.ts"
}
HarmonyOS
2024-12-27 13:38:36
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

还需要加上AbilityStage并配置好路径,可以参考以下文档

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/abilitystage-0000001774119982

在模块的 ets文件夹 下新建文件夹并新建 AbilityStage.ets文件,按照文档编写代码,可以参考以下代码:

import AbilityStage from "@ohos.app.ability.AbilityStage"
import hilog from '@ohos.hilog';
import process from '@ohos.process';

const LOG_TAG:string = 'testTag-stage';

export default class MyAbilityStage extends AbilityStage {
  onCreate() {
    hilog.info(0x0000, LOG_TAG, `AbilityStage onCreate 回调函数执行`);
    hilog.info(0x0000, LOG_TAG, "mainThread pid: %{public}d, tid: %{public}d", process.pid, process.tid);
  }
}

再在模块的 module.json5 文件中,配置 srcEntry 字段,值为 AbilityStage.ets 文件路径

分享
微博
QQ
微信
回复
2024-12-27 16:01:44
相关问题
HarmonyOS启动框架AppStartup咨询
892浏览 • 1回复 待解决
应用启动框架AppStartup应用场景分析
1008浏览 • 1回复 待解决
HarmonyOS 应用启动时间打点问题咨询
458浏览 • 1回复 待解决
HarmonyOS lottie框架问题
320浏览 • 1回复 待解决
HarmonyOS 首页框架问题
759浏览 • 1回复 待解决
HarmonyOS 使用AppStartup,运行时异常
489浏览 • 1回复 待解决
HarmonyOS Tabs框架切换问题
320浏览 • 1回复 待解决
HarmonyOS UI测试框架问题
570浏览 • 1回复 待解决
HarmonyOS视频流缓存框架问题
629浏览 • 1回复 待解决