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",
...
}
]
}
}
`HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿`
启动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
淘宝与华为合作将基于HarmonyOS NEXT启动鸿蒙原生应用开发
1月25日,淘宝与华为举办鸿蒙合作签约仪式,宣布将基于HarmonyOS NEXT启动鸿蒙原生应用开发。
哪吒汽车APP启动鸿蒙原生应用开发
哪吒汽车正式签约,启动鸿蒙原生应用开发;在5月17日,在上海市经济和信息化委员会指导的“千帆竞发启航 共筑鸿蒙生态——HDD上海站·鸿蒙原生
鸿蒙开发:【PageAbility的生命周期】
PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
![<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:【<b class='flag-5'>PageAbility</b>的生命周期】](https://file1.elecfans.com/web2/M00/EF/C4/wKgaomZu6DyAR9aSAABKUmyaxqQ873.jpg)
鸿蒙开发:创建PageAbility
通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会在app.js/app.ets中默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。
![<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:创建<b class='flag-5'>PageAbility</b>](https://file1.elecfans.com/web2/M00/EB/93/wKgZomZeuXuAfmJRAADrojiVvnQ389.png)
鸿蒙开发:启动本地PageAbility
PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。
![<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>启动</b>本地<b class='flag-5'>PageAbility</b>](https://file1.elecfans.com/web2/M00/C5/D5/wKgZomYCnRSAcOMcAACEEnttXHc600.png)
鸿蒙开发Ability Kit程序框架服务:PageAbility切换 组件切换
FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
![<b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>Ability Kit程序框架服务:<b class='flag-5'>PageAbility</b>切换 组件切换](https://file1.elecfans.com/web2/M00/F4/B2/wKgaomZ9V_mAFCmsAAEmkiq_e4E734.jpg)
评论