0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发:PageAbility的启动模式

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-17 14:35 次阅读

PageAbility的启动模式

启动模式对应PageAbility被启动时的行为,支持单实例模式、多实例模式两种启动模式。

表1 PageAbility的启动模式

启动模式描述说明开发前请熟悉鸿蒙开发指导文档:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]点击或者复制转到。
singleton单实例模式每次调用startAbility方法时,如果应用进程中该类型的Ability实例已经存在,则复用已有的实例,系统中只存在唯一一个实例。表现为在最近任务列表中只有一个Ability实例。 典型场景:当用户打开视频播放应用并观看视频,回到桌面后,再次打开视频播放应用,应用仍为回到桌面之前正在观看的视频。
multiton多实例模式缺省启动模式。每次调用startAbility方法时,都会在应用进程中创建一个新的Ability实例。表现为在最近任务列表中可以看到有多个该类型的Ability实例。 典型场景:当用户打开文档应用,选择新建文档的时候,每次点击新建文档,都会创建一个新的文档任务,在最近任务列表中可以看到多个新建的文档任务。

应用开发者可在config.json配置文件中通过“launchType”配置启动模式。示例如下:

{
  "module": {
    ...
    "abilities": [
      {
        // singleton: 单实例模式
        // multiton: 多实例模式
        "launchType": "multiton",
        ...
      }
    ]
  }
}

`HarmonyOSOpenHarmony鸿蒙文档籽料:mau123789是v直接拿`

搜狗高速浏览器截图20240326151450.png

启动PageAbility时,对于多实例模式启动,以及单实例模式进行首次启动时,[PageAbility生命周期回调]均会被触发。单实例非首次启动时不会再触发onCreate()接口,而是触发onNewWant(),onNewWant()的说明如下表2所示。

表2 单实例启动模式特有的回调函数说明

接口名接口描述
onNewWant(want: Want)单实例启动模式,PageAbility非首次启动时调用onNewWant方法,开发者可以在该方法中获取want,进而根据want做进一步处理。例如,单实例PageAbility迁移场景,指定页面拉起PageAbility场景。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 鸿蒙
    +关注

    关注

    55

    文章

    2103

    浏览量

    42272
收藏 人收藏

    评论

    相关推荐

    HarmonyOS应用开发-PageAbility生命周期介

    调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。onCreate() :Ability第一次启动创建Ability时调用onCreate方法,开发者可以
    发表于 10-17 11:11

    HarmonyOS/OpenHarmony应用开发-PageAbility开发体验

    功能简介PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例。开发者通过IDE创建Ability时,IDE会自动创建相关模板代码
    发表于 12-08 11:03

    米哈游宣布启动鸿蒙原生应用开发

    12月18日,米哈游宣布将基于HarmonyOS NEXT启动鸿蒙原生应用开发,成为又一家启动鸿蒙原生应用
    的头像 发表于 12-18 10:07 351次阅读

    多家头部企业宣布「启动鸿蒙原生应用开发」,你看好鸿蒙系统走向「独立」吗?

    鸿蒙生态迎「关键一战」,多家头部企业宣布「启动鸿蒙原生应用开发」,你看好鸿蒙系统走向「独立」吗?
    的头像 发表于 01-24 11:47 361次阅读
    多家头部企业宣布「<b class='flag-5'>启动</b><b class='flag-5'>鸿蒙</b>原生应用<b class='flag-5'>开发</b>」,你看好<b class='flag-5'>鸿蒙</b>系统走向「独立」吗?

    淘宝与华为合作将基于HarmonyOS NEXT启动鸿蒙原生应用开发

    1月25日,淘宝与华为举办鸿蒙合作签约仪式,宣布将基于HarmonyOS NEXT启动鸿蒙原生应用开发
    的头像 发表于 01-26 16:14 693次阅读

    哪吒汽车APP启动鸿蒙原生应用开发

    哪吒汽车正式签约,启动鸿蒙原生应用开发;在5月17日,在上海市经济和信息化委员会指导的“千帆竞发启航 共筑鸿蒙生态——HDD上海站·鸿蒙原生
    的头像 发表于 05-18 09:48 938次阅读

    鸿蒙开发:【PageAbility的生命周期】

    PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
    的头像 发表于 06-17 10:05 417次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:【<b class='flag-5'>PageAbility</b>的生命周期】

    鸿蒙开发:创建PageAbility

    通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会在app.js/app.ets中默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。
    的头像 发表于 06-18 09:36 111次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:创建<b class='flag-5'>PageAbility</b>

    鸿蒙开发启动本地PageAbility

    PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。
    的头像 发表于 06-18 09:29 106次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>启动</b>本地<b class='flag-5'>PageAbility</b>

    鸿蒙开发:停止PageAbility

    停止PageAbility通过featureAbility中的terminateSelf接口实现。
    的头像 发表于 06-18 14:16 147次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:停止<b class='flag-5'>PageAbility</b>

    鸿蒙开发启动远程PageAbility 仅对系统应用开放

    启动远程PageAbility同样通过featureAbility中的startAbility接口实现。
    的头像 发表于 06-19 09:34 123次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>启动</b>远程<b class='flag-5'>PageAbility</b> 仅对系统应用开放

    鸿蒙开发启动指定页面

    PageAbility启动模式设置为单例时(具体设置方法和典型场景示例见[PageAbility启动
    的头像 发表于 06-19 09:29 138次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>启动</b>指定页面

    鸿蒙开发:【组件启动规则(FA模型)】

    启动PageAbility、ServiceAbility,如使用startAbility()等相关接口。
    的头像 发表于 06-22 10:01 147次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:【组件<b class='flag-5'>启动</b>规则(FA模型)】

    鸿蒙开发Ability Kit程序框架服务:Stage模型启动FA模型PageAbility

    本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。
    的头像 发表于 06-26 09:50 117次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>Ability Kit程序框架服务:Stage模型<b class='flag-5'>启动</b>FA模型<b class='flag-5'>PageAbility</b>

    鸿蒙开发Ability Kit程序框架服务:PageAbility切换 组件切换

    FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
    的头像 发表于 06-28 11:38 141次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>Ability Kit程序框架服务:<b class='flag-5'>PageAbility</b>切换 组件切换