chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

鴻蒙Ability Kit(程序框架服務(wù))【UIAbility組件與UI的數(shù)據(jù)同步】

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-03 10:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

UIAbility組件與UI的數(shù)據(jù)同步

基于當前的應(yīng)用模型,可以通過以下幾種方式來實現(xiàn)UIAbility組件與UI之間的數(shù)據(jù)同步。

  • [使用EventHub進行數(shù)據(jù)通信]:在基類Context中提供了EventHub對象,可以通過發(fā)布訂閱方式來實現(xiàn)事件的傳遞。在事件傳遞前,訂閱者需要先進行訂閱,當發(fā)布者發(fā)布事件時,訂閱者將接收到事件并進行相應(yīng)處理。
  • [使用AppStorage/LocalStorage進行數(shù)據(jù)同步]:ArkUI提供了AppStorage和LocalStorage兩種應(yīng)用級別的狀態(tài)管理方案,可用于實現(xiàn)應(yīng)用級別和UIAbility級別的數(shù)據(jù)同步。
  • 開發(fā)前請熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

使用EventHub進行數(shù)據(jù)通信

[EventHub]為UIAbility組件提供了事件機制,使它們能夠進行訂閱、取消訂閱和觸發(fā)事件等數(shù)據(jù)通信能力。

在[基類Context]中,提供了EventHub對象,可用于在UIAbility組件實例內(nèi)通信。使用EventHub實現(xiàn)UIAbility與UI之間的數(shù)據(jù)通信需要先獲取EventHub對象,本章節(jié)將以此為例進行說明。

  1. 在UIAbility中調(diào)用[eventHub.on()]方法注冊一個自定義事件“event1”,[eventHub.on()]有如下兩種調(diào)用方式,使用其中一種即可。
    import hilog from '@ohos.hilog';
    import UIAbility from '@ohos.app.ability.UIAbility';
    import type window from '@ohos.window';
    import type { Context } from '@ohos.abilityAccessCtrl';
    import Want from '@ohos.app.ability.Want'
    import type AbilityConstant from '@ohos.app.ability.AbilityConstant';
    
    const DOMAIN_NUMBER: number = 0xFF00;
    const TAG: string = '[EventAbility]';
    
    export default class EntryAbility extends UIAbility {
      onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
        // 獲取UIAbility實例的上下文
        let context = this.context;
        // 獲取eventHub
        let eventhub = this.context.eventHub;
        // 執(zhí)行訂閱操作
        eventhub.on('event1', this.eventFunc);
        eventhub.on('event1', (data: string) = > {
          // 觸發(fā)事件,完成相應(yīng)的業(yè)務(wù)操作
        });
        hilog.info(DOMAIN_NUMBER, TAG, '%{public}s', 'Ability onCreate');
      }
      // ... 
      eventFunc(argOne: Context, argTwo: Context): void {
        hilog.info(DOMAIN_NUMBER, TAG, '1. ' + `${argOne}, ${argTwo}`);
        return;
      }
    }
    
  2. 在UI中通過[eventHub.emit()]方法觸發(fā)該事件,在觸發(fā)事件的同時,根據(jù)需要傳入?yún)?shù)信息。
    import common from '@ohos.app.ability.common';
     import promptAction from '@ohos.promptAction';
    
     @Entry
     @Component
     struct Page_EventHub {
    
       private context = getContext(this) as common.UIAbilityContext;
    
       eventHubFunc() : void {
         // 不帶參數(shù)觸發(fā)自定義“event1”事件
         this.context.eventHub.emit('event1');
         // 帶1個參數(shù)觸發(fā)自定義“event1”事件
         this.context.eventHub.emit('event1', 1);
         // 帶2個參數(shù)觸發(fā)自定義“event1”事件
         this.context.eventHub.emit('event1', 2, 'test');
         // 開發(fā)者可以根據(jù)實際的業(yè)務(wù)場景設(shè)計事件傳遞的參數(shù)
       }
    
      build() {
        Column() {
          // ...
          List({ initialIndex: 0 }) {
            ListItem() {
              Row() {
                // ...
              }
              .onClick(() = > {
                this.eventHubFunc();
                promptAction.showToast({
                  message: $r('app.string.EventHubFuncA')
                });
              })
            }
            // ...
            ListItem() {
              Row() {
                // ...
              }
              .onClick(() = > {
                this.context.eventHub.off('event1');
                promptAction.showToast({
                  message: $r('app.string.EventHubFuncB')
                });
              })
            }
            // ...
          }
          // ...
        }
        // ...
      }
    }
    
  3. 在UIAbility的注冊事件回調(diào)中可以得到對應(yīng)的觸發(fā)事件結(jié)果,運行日志結(jié)果如下所示。
    [Example].[Entry].[EntryAbility] 1. []
    [Example].[Entry].[EntryAbility] 1. [1]
    [Example].[Entry].[EntryAbility] 1. [2,"test"]
    
  4. 在自定義事件“event1”使用完成后,可以根據(jù)需要調(diào)用[eventHub.off()]方法取消該事件的訂閱。
    // context為UIAbility實例的AbilityContext
    this.context.eventHub.off('event1');
    
    `HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
    

新文檔.png

使用AppStorage/LocalStorage進行數(shù)據(jù)同步

ArkUI提供了AppStorage和LocalStorage兩種應(yīng)用級別的狀態(tài)管理方案,可用于實現(xiàn)應(yīng)用級別和UIAbility級別的數(shù)據(jù)同步。使用這些方案可以方便地管理應(yīng)用狀態(tài),提高應(yīng)用性能和用戶體驗。其中,AppStorage是一個全局的狀態(tài)管理器,適用于多個UIAbility共享同一狀態(tài)數(shù)據(jù)的情況;而LocalStorage則是一個局部的狀態(tài)管理器,適用于單個UIAbility內(nèi)部使用的狀態(tài)數(shù)據(jù)。通過這兩種方案,開發(fā)者可以更加靈活地控制應(yīng)用狀態(tài),提高應(yīng)用的可維護性和可擴展性。詳細請參見[應(yīng)用級變量的狀態(tài)管理]。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    404

    瀏覽量

    18219
  • 數(shù)據(jù)同步
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    8319
  • 鴻蒙
    +關(guān)注

    關(guān)注

    60

    文章

    2740

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件生命周期】

    當用戶打開、切換和返回到對應(yīng)應(yīng)用時,應(yīng)用中的UIAbility實例會在其生命周期的不同狀態(tài)之間轉(zhuǎn)換。UIAbility類提供了一系列回調(diào),通過這些回調(diào)可以知道當前UIAbility實例的某個狀態(tài)發(fā)生改變,會經(jīng)過
    的頭像 發(fā)表于 05-30 21:51 ?3177次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>UIAbility</b><b class='flag-5'>組件</b>生命周期】

    鴻蒙Ability Kit程序框架服務(wù))【UIExtensionAbility】

    [UIExtensionAbility]是UI類型的ExtensionAbility組件,需要與[UIExtensionComponent]一起配合使用,開發(fā)者可以在UIAbility的頁面中通過
    的頭像 發(fā)表于 06-05 09:19 ?2544次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【UIExtensionAbility】

    鴻蒙開發(fā)-應(yīng)用程序框架UIAbility的使用

    UIAbility內(nèi)頁面的新建以及UIAbility內(nèi)頁面的跳轉(zhuǎn)和數(shù)據(jù)傳遞。 打開DevEco Studio,選擇一個Empty Ability工程模板,創(chuàng)建一個工程,例如命名為MyA
    發(fā)表于 01-17 16:36

    UIAbility組件UI數(shù)據(jù)同步介紹

    UIAbility組件UI數(shù)據(jù)同步 基于當前的應(yīng)用模型,可以通過以下幾種方式來實現(xiàn)UIAbilit
    發(fā)表于 05-16 06:10

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型UIAbility組件使用(一)

    一、UIAbility組件概述1.概述 UIAbility組件是一種包含UI界面的應(yīng)用組件,主要
    發(fā)表于 06-28 10:32

    鴻蒙應(yīng)用模型:【Ability Kit】簡介

    Ability Kit程序框架服務(wù))提供了應(yīng)用程序開發(fā)和運行的應(yīng)用模型,是系統(tǒng)為開發(fā)者提供的應(yīng)
    的頭像 發(fā)表于 05-29 14:41 ?1375次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件概述】

    UIAbility組件是一種包含UI的應(yīng)用組件,主要用于和用戶交互。
    的頭像 發(fā)表于 05-30 20:17 ?1198次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>UIAbility</b><b class='flag-5'>組件</b>概述】

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件生命周期】實例

    本文檔主要描述了應(yīng)用運行過程中UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發(fā)表于 05-31 15:03 ?1954次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>UIAbility</b><b class='flag-5'>組件</b>生命周期】實例

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件啟動模式】

    UIAbility的啟動模式是指UIAbility實例在啟動時的不同呈現(xiàn)狀態(tài)。針對不同的業(yè)務(wù)場景,系統(tǒng)提供了三種啟動模式:
    的頭像 發(fā)表于 06-06 11:05 ?1726次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>UIAbility</b><b class='flag-5'>組件</b>啟動模式】

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

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

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility組件間交互(設(shè)備內(nèi))】

    UIAbility是系統(tǒng)調(diào)度的最小單元。在設(shè)備內(nèi)的功能模塊之間跳轉(zhuǎn)時,會涉及到啟動特定的UIAbility,該UIAbility可以是應(yīng)用內(nèi)的其他UIAbility,也可以是其他應(yīng)用的
    的頭像 發(fā)表于 06-03 09:53 ?1395次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>(<b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>)【<b class='flag-5'>UIAbility</b><b class='flag-5'>組件</b>間交互(設(shè)備內(nèi))】

    鴻蒙Ability Kit程序框架服務(wù))【UIAbility內(nèi)和UIAbility間頁面的跳轉(zhuǎn)】

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

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):任務(wù)管理

    AbilityRecord:系統(tǒng)服務(wù)側(cè)管理一個UIAbility實例的最小單元,對應(yīng)一個應(yīng)用側(cè)的UIAbility組件實例。系統(tǒng)服務(wù)側(cè)管理
    的頭像 發(fā)表于 06-24 14:46 ?914次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:任務(wù)管理

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型啟動Stage模型UIAbility

    本文介紹FA模型的三種應(yīng)用組件如何啟動Stage模型的UIAbility組件。
    的頭像 發(fā)表于 06-25 16:00 ?809次閱讀
    <b class='flag-5'>鴻蒙</b>開發(fā)<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務(wù)</b>:FA模型啟動Stage模型<b class='flag-5'>UIAbility</b>

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

    【HarmonyOS 5】鴻蒙中的UIAbility詳解(二) ##鴻蒙開發(fā)能力 ##HarmonyOS SDK應(yīng)用服務(wù)##鴻蒙金融類應(yīng)用
    的頭像 發(fā)表于 07-11 18:17 ?559次閱讀
    【HarmonyOS 5】<b class='flag-5'>鴻蒙</b>中的<b class='flag-5'>UIAbility</b>詳解(二)