logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

通知栏时间显示异常

概述 在某些系统版本中,设备系统时间设置为 12 小时制,下午 13:00 发起一条通知,通知栏中显示的时间却是 01:00。这是一个时间格式转换的 bug——系统按 24 小时制处理了时间,但没有根据用户的 12 小时制设置做格式化,导致下午 13点被错误地显示为 01 点。 说明 这个问题的根源在于时间格式化时没有读取系统的时间制式配置。HarmonyOS 中获取系统时间格式的接口是

@Builder 传参的"值"与"引用"

概述 把一段重复的界面抽成 @Builder自定义构建函数,是 ArkUI 里最常用的复用手段之一。但很多人抽完之后会撞上一个奇怪的现象:某个 @Builder里展示的文字,在别处把对应的数据改了之后,这里就是不刷新——日志里数据变了,界面纹丝不动。 这通常不是 @Builder写错了,而是传参方式用错了。@Builder的参数传递分两种:默认的"按值传递"和需要用 `$$`

ArkUI 对象型状态的观测边界

概述 做 ArkUI 开发的人几乎都踩过同一个坑:组件上 `@State` 装饰了一个对象数组,列表也能正常显示,可在某个 `onClick` 回调里把数组里某个元素的属性改了——`this.list[0].votes += 1`,日志里值明明变了,页面却纹丝不动。 这是状态管理 V1 的观测边界在起作用:`@State` 默认只能看到"第一层"的数据变化,数组元素内部的属性属

焦点导航中的数据预加载

概述 大屏应用中快速走焦切换导航页时,卡顿的主要原因是每次焦点变化都触发了一次网络请求和页面重建。如果能让数据提前准备好,用户切换页面时直接读取缓存,就能消除等待时间。预加载的思路就是——不等用户切到页面才请求,而是提前把相邻页面的数据拿过来存着。   说明 预加载需要做三件事:一个缓存容器存数据、一个触发时机拉数据、一个降级逻辑兜底。触发时机选在焦点变化时,只预加载当前页前后各一到两页

@Builder 与 @BuilderParam区别

概述 在 HarmonyOS 应用开发中,经常会遇到"大部分 UI 结构固定,局部需要调用方自定义"的场景。比如一个列表项,左侧固定显示头像和昵称,右侧的按钮则由不同业务决定——有的要"关注",有的要"删除"。如果每种情况都在组件内部写条件分支,组件会越来越臃肿。`@Builder` 和 `@BuilderParam` 就是为了解决这个问

@Builder 与 @Component 的区别与使用误区

概述 在 HarmonyOS ArkUI 开发中, @Builder 和 @Component 都用于封装可复用的 UI 片段,但它们的定位和使用方式有本质区别。开发者经常混淆两者,导致代码冗余或渲染异常。 说明 - @Builder :用于封装可复用的 UI 片段,是方法级别的复用,不能独立渲染 - @Component :用于定义独立的组件,可以独立渲染和管理自己的状态 最佳实践 @Build

应用开发中常见的异步操作防抖

概述 在日常开发中,异步操作的时序问题是非常常见的坑。特别是在处理用户输入、网络请求等场景时,如果不加以控制,很容易出现竞态条件(Race Condition),导致数据错乱或界面异常。本文总结了该问题的现象、原因及解决方案。 说明 竞态条件是指多个异步操作的执行顺序不确定,导致最终结果不符合预期。典型场景包括: - 用户快速连续点击按钮触发多次请求 - 搜索框输入时频繁触发搜索请求 - 多个异步

从页面驱动到System驱动:一次架构重构的思考

概述 随着应用功能日益复杂,早期的“页面驱动”架构(即所有业务逻辑都写在Ability或Page中)逐渐暴露出弊端:代码臃肿、逻辑分散、难以复用和测试。最近,我尝试将核心模块重构为“System驱动”架构,收获颇丰。   描述 什么是System驱动? 它将应用视为一个由“状态”驱动的系统,而非一堆页面的集合。核心思想是: Store:作为应用的“唯一事实来源”,集中管理所有业务状态。

如何使用正确的网络连接

前言 在用户平时使用手机 wifi 网络下载过程中;此时用户有连接 wifi 热点, 但该 wifi 热点无法连接网络,从而会使用用户流量进行下载;本文会介绍应该要怎样避免使用用户流量下载。   描述 1、首先通过使用 connection.getAllNets() 获取所有网络,遍历所有NetHandle网络 2、严格校验其是否具备 NET_CAPABILITY_INTERN

应用开发-通过DeepLink拉起应用

前言 在应用开发中,通过外部资源或者不同应用拉起另一个应用,并跳转到具体详情页是比较常见的需求。本文会具体介绍如何开发此功能。 开发环境 ohos设备: DAYU200 ohos系统: OpenHarmony 6.0.0.47 IDE: DevEco Studio 6.0.0 Release(Build Version: 6.0.0.858) OpenHarmony

    共 19 条
  • 1
  • 2
  • 请选择