HarmonyOS 鸿蒙Next HAP加载后,怎么知道先加载哪一个AbilityStage,再加载哪一个Ability

发布于 1周前 作者 h691938207 来自 鸿蒙OS

HarmonyOS 鸿蒙Next HAP加载后,怎么知道先加载哪一个AbilityStage,再加载哪一个Ability

在自动建立HELLO CANGJIE例程中,有文件modules.json5,

{

  “module”: {

    “name”: “entry”,

    “type”: “entry”,

    “description”: “$string:module_desc”,

    “mainElement”: “EntryAbility”,

    “deviceTypes”: [

      “phone”

    ],

    “deliveryWithInstall”: true,

    “installationFree”: false,

    “srcEntry”: “ohos_app_cangjie_entry.MyAbilityStage”,

    “abilities”: [

      {

        “name”: “EntryAbility”,

        “srcEntry”: “ohos_app_cangjie_entry.MainAbility”,

指明了module建立后调用AbilityState是MyAbilityStage,然后管理的abilities第一个就是Ability就是MainAbility.

在学习Ability框架时

根据AbilityStage章节案例,建立一个AbilityStage

func createAbilityStage(): MyAbilityStage {

    MyAbilityStage()

}

let ABILITY_STAGE_REGISTER_RESULT = AbilityStage.registerCreator(“entry”, createAbilityStage)

根据Ability章节案例,建立一个Ability

var globalAbilityContext: Option<AbilityContext> = Option<AbilityContext>.None

class MainAbility <: Ability {

    public init() {

        super()

        registerSelf()

    }

func createAbility(): MainAbility {

    MainAbility()

}

let ABILITY_REGISTER_RESULT = Ability.registerCreator(“CangjieAbility”, createAbility)

不明白的是,在没有modules.json5文件的情况下,怎么明确先运行哪一个AbilityStage,再加载哪一个Ability?

或者说,如果不用modules.json5指明,怎么编程实现先运行哪一个AbilityStage,再加载哪一个Ability吗?


更多关于HarmonyOS 鸿蒙Next HAP加载后,怎么知道先加载哪一个AbilityStage,再加载哪一个Ability的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复
前提就是要有 modules.json5 文件啊。

更多关于HarmonyOS 鸿蒙Next HAP加载后,怎么知道先加载哪一个AbilityStage,再加载哪一个Ability的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


没有modules.json5文件 你模块不报错?

在HarmonyOS鸿蒙Next系统中,HAP(Harmony Ability Package)加载后,关于AbilityStage和Ability的加载顺序,以下是相关信息:

HarmonyOS中,AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,用于对该Module进行初始化等操作。每个Module都有一个与之对应的AbilityStage,且它们之间存在一一对应的关系。

HAP加载后,系统会先创建对应的AbilityStage实例,并执行其onCreate()生命周期回调,此时可以进行Module的初始化操作(如资源预加载、线程创建等)。随后,根据配置和需要,系统会加载并执行相应的Ability。

由于系统的具体实现和加载策略可能因版本和配置而异,因此无法确定具体的加载顺序(除了知道AbilityStage先于Ability加载)。如需更多相关信息,建议查阅HarmonyOS的官方文档或开发者指南。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部