女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【HarmonyOS 5】鴻蒙中的UIAbility詳解(一)

HarmonyOS解決方案 ? 來源:HarmonyOS解決方案 ? 作者:HarmonyOS解決方案 ? 2025-07-07 14:36 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

HarmonyOS 5】鴻蒙中的UIAbility詳解(一)

##鴻蒙開發能力 ##HarmonyOS SDK應用服務##鴻蒙金融類應用 (金融理財#

一、UIAbility是什么?

Stage模型中的組件類型名,即UIAbility組件,包含UI,提供展示UI的能力,主要用于和用戶交互。

UIAbility類似于傳統移動開發Android中的Activity或者Fragment。類似IOS開發中的 UIViewController。

UIAbility 是 HarmonyOS 應用框架的核心組件,負責管理應用的用戶界面生命周期和上下文信息。

二、設置指定啟動頁面

啟動頁面必須設置 :否則應用啟動后會白屏。

避免應用啟動后白屏,需在onWindowStageCreate生命周期中設置默認加載頁面。通過WindowStageloadContent()方法指定頁面路徑。

export default class EntryAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage): void {
    windowStage.loadContent('pages/Index', (err, data) = > { /* 處理回調 */ });
  }
}

DevEco Studio默認生成的項目會自動加載Index頁面,可按需修改路徑。

三、獲取上下文信息(UIAbilityContext)

獲取應用配置信息(如包名、Ability名稱等),或調用操作Ability的方法(如啟動、終止Ability)。通過this.context直接訪問。

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    const context = this.context; // 直接獲取上下文
  }
}

在頁面組件中獲取
通過getUIContext().getHostContext()轉換為UIAbilityContext

@Entry
@Component
struct Page {
  private context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  startAbilityTest() { this.context.startAbility(want); } // 啟動其他Ability
}

啟動頁面設置與上下文使用代碼示例

// UIAbility定義
export default class EntryAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage) {
    windowStage.loadContent('pages/Main', () = > {}); // 設置啟動頁面
  }

  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    const context = this.context; // 獲取上下文
    context.startAbility({ abilityName: 'OtherAbility' }); // 啟動其他Ability
  }
}

// 頁面組件中使用上下文
@Entry
@Component
struct MainPage {
  private context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  build() {
    Button('終止當前Ability').onClick(() = > this.context.terminateSelf());
  }
}

四、UIAbility生命周期與操作

UIAbility的生命周期包含 Create(創建)、Foreground(前臺)、Background(后臺)、Destroy(銷毀) 四個核心狀態,以及與窗口(WindowStage)相關的子狀態。通過生命周期回調鉤子函數,可監聽狀態變化并執行對應操作。

生命周期狀態流轉圖

創建實例          窗口創建       進入前臺         切到后臺         窗口銷毀       實例銷毀
  ↓               ↓             ↓               ↓               ↓             ↓
onCreate() → onWindowStageCreate() → onForeground() → onBackground() → onWindowStageDestroy() → onDestroy()
         ↑       ↖                ↗                ↖                ↑
         └─────── WindowStageWillDestroy() ────────────────────────┘

1、onCreate

UIAbility實例創建完成時觸發。初始化頁面數據、加載資源(如定義變量、獲取上下文this.context)。

export default class EntryAbility extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    // 初始化操作(如獲取上下文、配置數據)
    const context = this.context; 
  }
}

2、WindowStageCreate

UIAbility實例創建后,進入前臺前,系統創建WindowStage時觸發。設置啟動頁面(loadContent())、訂閱窗口事件(如前后臺切換、焦點變化)。

onWindowStageCreate(windowStage: window.WindowStage) {
      windowStage.loadContent('pages/Index'); // 設置啟動頁面
      windowStage.on('windowStageEvent', (event) = > { // 訂閱窗口事件
        switch (event) {
          case window.WindowStageEventType.SHOWN: // 切到前臺
            console.log('窗口切到前臺');
            break;
        }
      });
    }

3、WindowStageWillDestroy

WindowStage銷毀前觸發(此時窗口仍可用)。釋放通過WindowStage獲取的資源,注銷事件訂閱(off('windowStageEvent'))。

4、WindowStageDestroy

WindowStage銷毀時觸發(UI資源釋放)。釋放UI相關資源(如臨時文件、圖形對象)。

5、Foreground

UIAbility切換至前臺、UI可見前觸發。申請系統資源(如定位、傳感器權限)、恢復后臺釋放的資源。

onForeground() {
      // 開啟定位功能
      location.start(); 
    }

6、Background

UIAbility切換至后臺、UI完全不可見后觸發。釋放無用資源、執行耗時操作(如數據持久化)。

onBackground() {
      // 停止定位、保存當前狀態
      location.stop(); 
      saveDataToLocal();
   }

7、onDestroy

UIAbility實例被終止時觸發(如調用terminateSelf())。釋放全局資源、清理內存(如關閉網絡連接、注銷監聽器)。

onDestroy() {
  // 釋放數據庫連接、取消定時器
  db.close(); 
  clearInterval(timer);
}

注意 :API 13+中,若用戶通過最近任務一鍵清理應用, 不會觸發onDestroy() ,而是直接終止進程。

四、UIAbility的常用函數操作

1. 終止UIAbility實例

調用terminateSelf()終止當前Ability。

context.terminateSelf((err) = > {
  if (err) { console.error('終止失敗:', err); } 
  else { console.info('終止成功'); }
});

2. 獲取拉起方信息

當UIAbilityA通過startAbility啟動UIAbilityB時,UIAbilityB可獲取調用方信息。

export default class UIAbilityB extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
    console.log(`調用方Pid: ${want.parameters?.['ohos.aafwk.param.callerPid']}`);
  }
}

跨Ability信息傳遞代碼示例

// UIAbilityA中啟動UIAbilityB
@Entry
@Component
struct UIAbilityAPage {
  private context = this.getUIContext().getHostContext() as common.UIAbilityContext;
  build() {
    Button('拉起UIAbilityB').onClick(() = > {
      this.context.startAbility({ 
        bundleName: this.context.abilityInfo.bundleName, 
        abilityName: 'UIAbilityB' 
      });
    });
  }
}

// UIAbilityB中獲取調用方信息
export default class UIAbilityB extends UIAbility {
  onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) {
    console.log(`調用方包名: ${want.parameters?.['ohos.aafwk.param.callerBundleName']}`);
  }
}

注意

當UIAbility設置為singleton啟動模式時,重復調用startAbility()啟動同一實例, 不會重新走onCreateonWindowStageCreate流程 ,而是觸發onNewWant回調。

onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam) {
  // 根據新的Want參數更新頁面數據
  this.data = want.parameters?.data; 
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 鴻蒙
    +關注

    關注

    59

    文章

    2594

    瀏覽量

    43965
  • HarmonyOS
    +關注

    關注

    80

    文章

    2117

    瀏覽量

    32758
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    深入理解HarmonyOS UIAbility:生命周期、WindowStage與啟動模式探析

    UIAbility組件概述 UIAbility組件是HarmonyOS種包含UI界面的應用組件,主要用于與用戶進行交互。每個UIAbility
    的頭像 發表于 02-17 15:33 ?2169次閱讀
    深入理解<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>UIAbility</b>:生命周期、WindowStage與啟動模式探析

    HarmonyOS開發案例:【UIAbility內和UIAbility間頁面的跳轉】

    基于Stage模型下的UIAbility開發,實現UIAbility內和UIAbility間頁面的跳轉。
    的頭像 發表于 05-09 15:06 ?2191次閱讀
    <b class='flag-5'>HarmonyOS</b>開發案例:【<b class='flag-5'>UIAbility</b>內和<b class='flag-5'>UIAbility</b>間頁面的跳轉】

    鴻蒙開發-應用程序框架UIAbility的使用

    ,都對應于個最近任務列表的任務。 個應用可以有UIAbility,也可以有多個UIAbilit
    發表于 01-17 16:36

    2024款鴻蒙OS 最新HarmonyOS Next_HarmonyOS4.0系列教程分享

    實戰,還包含了HarmonyOS 仿小米App實戰。詳情參考大綱或者目錄介紹。 根據華為鴻蒙生態推廣部門介紹,HarmonyOS4和未來的HarmonyOS5
    發表于 02-28 10:29

    HarmonyOS/OpenHarmony應用開發-Stage模型UIAbility組件使用(

    UIAbility組件可以通過多個頁面來實現個功能模塊。每UIAbility組件實例,都對應于
    發表于 06-28 10:32

    HarmonyOS/OpenHarmony應用開發-Stage模型UIAbility組件使用(

    UIAbility組件可以通過多個頁面來實現個功能模塊。每UIAbility組件實例,都對應于
    發表于 06-28 10:32

    鴻蒙開發丨設備內 UIAbility 的幾種交互方式

    UIAbility 組件間交互(設備內) 在設備內,UIAbility(用戶界面能力)是系統調度的最小單元,它們負責展示用戶界面和執行相關的業務邏輯。設備內的不同功能模塊之間的交互是應用程序開發
    的頭像 發表于 02-02 10:42 ?1011次閱讀
    <b class='flag-5'>鴻蒙</b>開發丨設備內 <b class='flag-5'>UIAbility</b> 的幾種交互方式

    鴻蒙Ability Kit(程序框架服務)【UIAbility組件基本用法】

    UIAbility組件的基本用法包括:指定UIAbility的啟動頁面以及獲取UIAbility的上下文[UIAbilityContext]。
    的頭像 發表于 06-06 11:02 ?877次閱讀
    <b class='flag-5'>鴻蒙</b>Ability Kit(程序框架服務)【<b class='flag-5'>UIAbility</b>組件基本用法】

    鴻蒙Ability Kit(程序框架服務)【UIAbility內和UIAbility間頁面的跳轉】

    基于Stage模型下的UIAbility開發,實現UIAbility內和UIAbility間頁面的跳轉。
    的頭像 發表于 06-03 14:13 ?1278次閱讀
    <b class='flag-5'>鴻蒙</b>Ability Kit(程序框架服務)【<b class='flag-5'>UIAbility</b>內和<b class='flag-5'>UIAbility</b>間頁面的跳轉】

    HarmonyOS 5】VisionKit人臉活體檢測詳解

    HarmonyOS 5】VisionKit人臉活體檢測詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##
    的頭像 發表于 06-21 11:52 ?231次閱讀
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】VisionKit人臉活體檢測<b class='flag-5'>詳解</b>

    HarmonyOS 5 makeObserved接口詳解

    HarmonyOS 5】makeObserved接口詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##
    的頭像 發表于 06-16 17:58 ?255次閱讀

    HarmonyOS 5】桌面快捷方式功能實現詳解

    HarmonyOS 5】桌面快捷方式功能實現詳解 ##鴻蒙開發能力 ##HarmonyOS SDK應用服務##
    的頭像 發表于 06-21 16:42 ?246次閱讀
    【<b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b>】桌面快捷方式功能實現<b class='flag-5'>詳解</b>

    HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解

    HarmonyOS 5 入門系列 】鴻蒙HarmonyOS示例項目講解 ##鴻蒙開發能力 ##Har
    的頭像 發表于 07-07 11:57 ?89次閱讀
    【 <b class='flag-5'>HarmonyOS</b> <b class='flag-5'>5</b> 入門系列 】<b class='flag-5'>鴻蒙</b><b class='flag-5'>HarmonyOS</b>示例項目講解

    鴻蒙Stage模型與FA模型詳解

    HarmonyOS 5鴻蒙Stage模型與FA模型詳解 ##鴻蒙開發能力 ##
    的頭像 發表于 07-07 11:50 ?100次閱讀

    鴻蒙應用px,vp,fp概念詳解

    HarmonyOS 5鴻蒙應用px,vp,fp概念詳解 ##鴻蒙開發能力 ##HarmonyOS
    的頭像 發表于 07-07 11:48 ?92次閱讀
    <b class='flag-5'>鴻蒙</b>應用px,vp,fp概念<b class='flag-5'>詳解</b>
    主站蜘蛛池模板: 炉霍县| 安溪县| 孟村| 望奎县| 施秉县| 玛曲县| 英德市| 错那县| 长治县| 麟游县| 达拉特旗| 武夷山市| 衡南县| 刚察县| 开鲁县| 如皋市| 余江县| 临沧市| 福海县| 香港| 华池县| 龙井市| 武冈市| 古丈县| 将乐县| 虎林市| 青冈县| 景宁| 亚东县| 宜州市| 广州市| 章丘市| 兴化市| 兴隆县| 且末县| 仁怀市| 商水县| 吕梁市| 大名县| 大渡口区| 景德镇市|