写点什么

HarmonyOS 5.0 应用开发——UIAbility 跳转

作者:高心星
  • 2024-12-06
    江苏
  • 本文字数:1290 字

    阅读完需:约 4 分钟

HarmonyOS 5.0应用开发——UIAbility跳转

【高心星出品】


UIAbility 跳转

UIAbility 是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的 UIAbility,包括应用内的其他 UIAbility、或者其他应用的 UIAbility(例如启动三方支付 UIAbility)。

发起跳转

以下的案例将要实现:EntryAbility 加载的 index 页面中文本,点击之后跳转到 EntryAbility1 加载的 index1 页面中。


可以在后台看到两个任务窗口。



index 页面代码


import { common, Want } from '@kit.AbilityKit';
@Entry@Componentstruct Index { @State message: string = 'Hello World'; private context:common.UIAbilityContext=getContext(this) as common.UIAbilityContext build() { RelativeContainer() { Text(this.message) .id('HelloWorld') .fontSize(50) .fontWeight(FontWeight.Bold) .alignRules({ center: { anchor: '__container__', align: VerticalAlign.Center }, middle: { anchor: '__container__', align: HorizontalAlign.Center } }) .onClick(()=>{ let want:Want={ // 包名 bundleName:'com.gxx.uiabilitydemo', // ability名字 abilityName:'EntryAbility1', // 携带参数 parameters:{ name:'gxx' } } // 启动跳转 this.context.startAbility(want) }) } .height('100%') .width('100%') }}
复制代码

Ability 的启动模式

UIAbility 的启动模式是指 UIAbility 实例在启动时的不同呈现状态。针对不同的业务场景,系统提供了三种启动模式:


  • singleton(单实例模式)

  • multiton(多实例模式)

  • specified(指定实例模式)


在这里我们只介绍前两种常用启动模式。

singleton 启动模式

singleton 启动模式为单实例模式,也是默认情况下的启动模式。


每次调用 startAbility()方法时,如果应用进程中该类型的 UIAbility 实例已经存在,则复用系统中的 UIAbility 实例。系统中只存在唯一一个该 UIAbility 实例,即在最近任务列表中只存在一个该类型的 UIAbility 实例。


生命周期函数调用顺序:startAbility(EntryAbility)----》onNewWant()(EntryAbility1)不会执行 oncrate。



需要在 module.json5 配置单例启动模式。


{  "module": {    // ...    "abilities": [      {        "launchType": "singleton",        // ...      }    ]  }}
复制代码
multiton 启动模式

multiton 启动模式为多实例模式,每次调用 startAbility()方法时,都会在应用进程中创建一个新的该类型 UIAbility 实例。即在最近任务列表中可以看到有多个该类型的 UIAbility 实例。这种情况下可以将 UIAbility 配置为 multiton(多实例模式)。


生命周期函数调用顺序:startAbility(EntryAbility)----》oncreate()(EntryAbility1)不会执行 onNewWant()周期函数。



需要在 module.json5 配置多实例启动模式。


{  "module": {    // ...    "abilities": [      {        "launchType": "multiton",        // ...      }    ]  }}
复制代码


发布于: 刚刚阅读数: 5
用户头像

高心星

关注

天将降大任于斯人也,必先苦其心志。 2024-10-17 加入

华为开发者专家(HDE)。 10年教学经验,兼任多家科技公司技术顾问。先后从事JavaEE项目开发、Python爬虫、HarmonyOS移动应用开发等课程的教学工作。参与开发《鸿蒙应用开发基础》和《鸿蒙项目实战》等课程。

评论

发布
暂无评论
HarmonyOS 5.0应用开发——UIAbility跳转_arkui_高心星_InfoQ写作社区