Your Site Title

Harmony Stage

图1 Stage模型概念图

基本概念

应用/组件级配置

UIAbility组件

UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互。

UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口;一个UIAbility组件中可以通过多个页面来实现一个功能模块。每一个UIAbility组件实例,都对应于一个最近任务列表中的任务。

module.json5配置:

{
  "module": {
    // ...
    "abilities": [
      {
        "name": "EntryAbility", // UIAbility组件的名称
        "srcEntry": "./ets/entryability/EntryAbility.ts", // UIAbility组件的代码路径
        "description": "$string:EntryAbility_desc", // UIAbility组件的描述信息
        "icon": "$media:icon", // UIAbility组件的图标
        "label": "$string:EntryAbility_label", // UIAbility组件的标签
        "startWindowIcon": "$media:icon", // UIAbility组件启动页面图标资源文件的索引
        "startWindowBackground": "$color:start_window_background", // UIAbility组件启动页面背景颜色资源文件的索引
        // ...
      }
    ]
  }
}

UIAbility组件生命周期

UIAbility生命周期状态 WindowStageCreate和WindowStageDestroy状态.png

UIAbility onCreate
WindowStage onWindowStageCreate
UIAbility onForeground
WindowStage Visible
WindowStage Active
WindowStage InActive
WindowStage InVisible
UIAbility onBackground
WindowStage onWindowStageDestroy
UIAbility onDestory

WindowStageCreate和WindowStageDestroy状态

UIAbility组件启动模式

UIAbility 组件基本用法

UIAbility组件与UI的数据同步

UIAbility组件间交互(设备内)

ExtensionAbility组件

ExtensionAbility组件是基于特定场景提供的应用组件,以便满足更多的使用场景。 每一个具体场景对应一个ExtensionAbilityType

服务卡片开发指导(Stage模型)

服务卡片(以下简称“卡片”)是一种界面展示形式,可以将应用的重要信息或操作前置到卡片,以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用(当前卡片使用方只支持系统应用,如桌面)中作为其界面显示的一部分,并支持拉起页面、发送消息等基础的交互功能。

AbilityStage组件容器

AbilityStage是一个Module级别的组件容器,应用的HAP在首次加载时会创建一个AbilityStage实例,可以对该Module进行初始化等操作。

AbilityStage与Module一一对应,即一个Module拥有一个AbilityStage。

AbilityStage拥有onCreate()生命周期回调和onAcceptWant()、onConfigurationUpdated()、onMemoryLevel()事件回调。

应用上下文Context

订阅进程内Ability生命周期变化

let abilityLifecycleCallback = {

信息传递载体Want

进程模型概述

线程模型概述

除主线程外,还有一类与主线程并行的独立线程Worker,主要用于执行耗时操作,但不可以直接操作UI。Worker线程在主线程中创建,与主线程相互独立。最多可以创建8个Worker: 基于HarmonyOS的线程模型,不同的业务功能运行在不同的线程上,业务功能的交互就需要线程间通信。线程间通信目前主要有Emitter和Worker两种方式,其中Emitter主要适用于线程间的事件同步, Worker主要用于新开一个线程执行耗时任务。

Reference