# LaunchUIAbility **Repository Path**: harmonyos_codelabs/LaunchUIAbility ## Basic Information - **Project Name**: LaunchUIAbility - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2025-07-07 - **Last Updated**: 2025-09-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 启动应用内的UIAbility ## 介绍 本示例通过设置UIAbility的启动模式为指定模式启动,设置Want参数中是否携带自定义参数,用于判断是新建UIAbility还是复用UIAbility。新建UIAbility触发完整生命周期;复用UIAbility触发onNewWant回调,可重新设置指定页面等。 ## 效果预览 ![launch_type_zh.gif](screenshots/device/launch_type_zh.gif) ## 使用说明 1. 进入首页,点击文档A,弹出并打开文档A的UIAbility。 2. 返回首页,再次点击文档A,复用并打开文档A的UIAbility。 3. 进入首页,点击下方新增按钮,弹出并打开一个新的UIAbility。 ## 工程目录 ``` ├──entry/src/main/ets/ │ ├──abilitystage │ │ └──SpecifiedAbilityStage.ets // 组件容器类 │ ├──entryability │ │ └──EntryAbility.ets // 程序入口类 │ ├──entrybackupability │ │ └──EntryBackupAbility.ets // 备份恢复类 │ ├──model │ │ └──DataModel.ets // 数据操作类 │ ├──pages │ │ └──Index.ets // 首页 │ ├──specifiedability │ │ └──SpecifiedAbility.ets // 指定页面入口类 │ └──specifiedpages │ └──SpecifiedPage.ets // 指定页面 └──entry/src/main/resources // 应用资源目录 ``` ## 具体实现 基于指定模式的情况下,点击列表文档或下方添加按钮: - 进入首页,点击文档A,触发[startAbility()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-inner-application-uiabilitycontext#startability)方法,在Want参数中携带自定义参数,将该参数传入[onAcceptWant()](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/js-apis-app-ability-abilitystage#onacceptwant) 方法作为Key值,并新建一个文档A的UIAbility。 - 返回首页,再次点击文档A,触发startAbility()方法,进入onAcceptWant() ,匹配Key值是否一致,一致则复用文档A的UIAbility并打开,不一致则新建一个UIAbility并打开。 - 进入首页,点击下方新增按钮,触发startAbility()方法,在Want参数中不携带自定义参数,每次点击该按钮,都会新建一个UIAbility并打开。 ## 相关权限 不涉及 ## 依赖 不涉及 ## 约束与限制 1. 本示例仅支持标准系统上运行,支持设备:华为手机。 2. HarmonyOS系统:HarmonyOS 5.1.1 Release及以上。 3. DevEco Studio版本:DevEco Studio 5.1.1 Release及以上。 4. HarmonyOS SDK版本:HarmonyOS 5.1.1 Release SDK及以上。