Name | Date | Size | ||
---|---|---|---|---|
.. | 25-Oct-2024 | 4 KiB | ||
.gitignore | H A D | 25-Oct-2024 | 77 | |
AppScope/ | H | 25-Oct-2024 | 4 KiB | |
build-profile.json5 | H A D | 25-Oct-2024 | 1 KiB | |
entry/ | H | 25-Oct-2024 | 4 KiB | |
hvigor/ | H | 25-Oct-2024 | 4 KiB | |
hvigorfile.js | H A D | 25-Oct-2024 | 168 | |
hvigorw | H A D | 25-Oct-2024 | 2.1 KiB | |
hvigorw.bat | H A D | 25-Oct-2024 | 2 KiB | |
oh-package.json5 | H A D | 25-Oct-2024 | 819 | |
ohosTest.md | H A D | 25-Oct-2024 | 756 | |
README_zh.md | H A D | 25-Oct-2024 | 4.2 KiB | |
screenshots/devices/ | H | 25-Oct-2024 | 4 KiB |
README_zh.md
1# Ability的启动模式 2 3### 介绍 4 5本示例展示了在一个Stage模型中,实现standard、singleton、specified多种模式场景。 6 7本实例参考[开发指南](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/application-package-structure-stage.md) 。 8本实例需要使用[aa工具](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/tools/aa-tool.md) 查看应用Ability 模式信息。 9 10### 效果预览 11 12|主页|普通多实例Ability信息|单实例Ability信息|指定多实例Ability信息| 13|--------------------------------|--------------------------------|--------------------------------|--------------------------------| 14||||| 15 16使用说明 17 181、standard模式: 19 201)进入首页,点击番茄,会新建一个番茄的Ability,展示番茄的详情; 21 222)在番茄的详情界面,点击黄瓜,会新建一个黄瓜的Ability,展示黄瓜的详情; 23 243)使用aa工具查看Ability信息,此时存在以下Ability:1个番茄的Ability、1个黄瓜的Ability、1个首页的Ability; 25 262、singleton模式: 27 281)进入首页,点击冰淇凌,会新建一个冰淇凌的Ability,展示冰淇凌的详情; 29 302)在冰淇凌的详情界面,点击螃蟹,会复用冰淇凌的Ability,页面数据会刷新并展示螃蟹的详情; 31 323)使用aa工具查看Ability信息,此时存在以下Ability:1个冰淇凌的Ability、1个首页Ability; 33 343、specified模式: 35 361)进入首页,点击核桃,会新建一个核桃的Ability,展示核桃的详情; 37 382)在核桃的详情界面,点击蓝莓,会新建一个蓝莓的Ability,展示蓝莓的详情; 39 403)在蓝莓的详情界面,点击核桃,会复用已存在的核桃的Ability,实现specified模式下的单实例特性,页面数据会刷新并展示核桃的详情; 41 424)使用aa工具查看Ability信息,此时存在以下Ability:1个核桃的Ability、1个蓝莓的Ability、1个首页Ability; 43 44### 工程目录 45``` 46entry/src/main/ets/ 47|---Application 48|---common 49| |---Logger.ts // 日志工具 50| |---Util.ts // 封装常用函数 51|---MainAbility 52|---model 53| |---DataModel.ts // 封装数据类型 54| |---DataUtil.ts // 封装数据处理函数 55| |---MokeData.ts // 模拟数据 56|---pages 57| |---component 58| | |---FoodListItem.ets // 食物列表组件 59| |---FoodDetail.ets // 食物详情页 60| |---Home.ets // 首页 61``` 62### 具体实现 63 64* 本示例启动standard、singleton、specified三种模式的方法主要封装在Util当中,源码参考:[Util.ts](entry/src/main/ets/common/Util.ts) 。 65 * 新建Ability:创建三个代表standard、singleton、specified模式的Ability,如工程目录中的SingletonAbility、SpecifiedAbility、StandardAbility,并在module.json文件中将launchType属性修改为对应的启动模式属性。 66 * 启动指定Ability:通过Util中的startMode函数根据页面所传的abilityName,启动对应的ability并进入详情页面。 67 * specified多实例功能实现:specified模式则是根据MyAbilityStage中的onAcceptWant函数给用户返回一个ability标识,如果之前启动过标识的ability,不创建新的实例并拉回栈顶,否则创建新的实例并启动。 68 69### 相关权限 70 71不涉及。 72 73### 依赖 74 75不涉及。 76 77### 约束与限制 78 791.本示例仅支持标准系统上运行,支持设备:RK3568。 80 812.本示例已适配API version 9版本SDK,版本号:3.2.11.9。 82 833.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400 构建 2023年4月7日)及以上版本才可编译运行。 84 85### 下载 86 87如需单独下载本工程,执行如下命令: 88 89``` 90git init 91git config core.sparsecheckout true 92echo code/BasicFeature/ApplicationModels/AbilityStartMode/ > .git/info/sparse-checkout 93git remote add origin https://gitee.com/openharmony/applications_app_samples.git 94git pull origin master 95```