谁能解释下什么是HarmonyOS鸿蒙Next中的无感监听?

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

谁能解释下什么是HarmonyOS鸿蒙Next中的无感监听? 使用无感监听页面路由的能力,能够实现在自定义组件中监听页面的生命周期。

// Index.ets
import { uiObserver, router, UIObserver } from '@kit.ArkUI';

@Entry
@Component
struct Index {
  listener: (info: uiObserver.RouterPageInfo) => void = (info: uiObserver.RouterPageInfo) => {
    let routerInfo: uiObserver.RouterPageInfo | undefined = this.queryRouterPageInfo();
    if (info.pageId == routerInfo?.pageId) {
      if (info.state == uiObserver.RouterPageState.ON_PAGE_SHOW) {
        console.log(`Index onPageShow`);
      } else if (info.state == uiObserver.RouterPageState.ON_PAGE_HIDE) {
        console.log(`Index onPageHide`);
      }
    }
  }
  aboutToAppear(): void {
    let uiObserver: UIObserver = this.getUIContext().getUIObserver();
    uiObserver.on('routerPageUpdate', this.listener);
  }
  aboutToDisappear(): void {
    let uiObserver: UIObserver = this.getUIContext().getUIObserver();
    uiObserver.off('routerPageUpdate', this.listener);
  }
  build() {
    Column() {
      Text(`this page is ${this.queryRouterPageInfo()?.pageId}`)
        .fontSize(25)
      Button("push self")
        .onClick(() => {
          router.pushUrl({
            url: 'pages/Index'
          })
        })
      Column() {
        SubComponent()
      }
    }
  }
}

@Component
struct SubComponent {
  listener: (info: uiObserver.RouterPageInfo) => void = (info: uiObserver.RouterPageInfo) => {
    let routerInfo: uiObserver.RouterPageInfo | undefined = this.queryRouterPageInfo();
    if (info.pageId == routerInfo?.pageId) {
      if (info.state == uiObserver.RouterPageState.ON_PAGE_SHOW) {
        console.log(`SubComponent onPageShow`);
      } else if (info.state == uiObserver.RouterPageState.ON_PAGE_HIDE) {
        console.log(`SubComponent onPageHide`);
      }
    }
  }
  aboutToAppear(): void {
    let uiObserver: UIObserver = this.getUIContext().getUIObserver();
    uiObserver.on('routerPageUpdate', this.listener);
  }
  aboutToDisappear(): void {
    let uiObserver: UIObserver = this.getUIContext().getUIObserver();
    uiObserver.off('routerPageUpdate', this.listener);
  }
  build() {
    Column() {
      Text(`SubComponent`)
    }
  }
}

引自:https://developer.huawei.com/consumer/cn/training/course/slightMooc/C101717497398588123


更多关于谁能解释下什么是HarmonyOS鸿蒙Next中的无感监听?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

感谢分享

更多关于谁能解释下什么是HarmonyOS鸿蒙Next中的无感监听?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS鸿蒙Next中的无感监听是一种系统级的监听机制,旨在实现设备间的无缝协同和数据共享。它通过系统底层的分布式技术,自动感知设备的连接状态和数据变化,无需用户手动操作或干预。具体来说,无感监听可以在设备间建立低功耗、高效的数据传输通道,实时同步信息,确保多设备间的协同工作流畅自然。例如,当用户在手机上进行操作时,附近的平板或智能手表会自动获取相关数据并做出响应,整个过程对用户透明,无需额外的配置或操作。这种机制依赖于HarmonyOS的分布式数据管理和软总线技术,能够有效提升多设备协同体验。

在HarmonyOS鸿蒙Next中,无感监听是一种智能化的用户行为感知技术。它通过系统内置的传感器和AI算法,实时捕捉用户的设备使用习惯、应用偏好及操作模式,而无需用户主动配置或干预。这种技术能够动态优化系统资源分配、提升应用启动速度,并根据用户需求智能推荐服务或内容,实现“人机协同”的自然交互体验。同时,鸿蒙系统严格遵循隐私保护原则,确保无感监听在合法、合规的框架下进行,不会泄露用户个人信息。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!