HarmonyOS鸿蒙Next中如何延迟一秒后执行某项操作

HarmonyOS鸿蒙Next中如何延迟一秒后执行某项操作 如何延迟一秒后执行某项操作

4 回复

可以添加一个定时器,到时间后就会执行需要的操作,以下为示例:

@Entry
@Component
export struct BookingBallFieldItemView {

  @State item: string = '斗破苍穹'

  @State detailIsShow: Visibility = Visibility.None

  fontStyleAttr1: TextStyle = new TextStyle({ fontColor:'#ffae18ff' });

  mutableStyledString1: MutableStyledString = new MutableStyledString(this.item, [{
    start: 2,
    length: 1,
    styledKey: StyledStringKey.FONT,
    styledValue: this.fontStyleAttr1
  }]);

  controller2: TextController = new TextController();

  async onPageShow() {
    this.controller2.setStyledString(this.mutableStyledString1)
  }

  build() {
    Column() {
      Row() {
        Column() {
          Flex({ direction: FlexDirection.Row, justifyContent: FlexAlign.Start }) {
            Text(undefined, { controller: this.controller2 })
              .fontColor('#333333')
              .fontSize(16)
              .maxLines(1)
              .height(20)
              .textAlign(TextAlign.Start)
              .textOverflow({ overflow: TextOverflow.Ellipsis }).key('mutableStyledString1')
              .onClick(() =>{
                setTimeout(()=>{
                  this.detailIsShow = Visibility.Visible
                },3000)
              })
            Text('玄幻小说').visibility(this.detailIsShow).margin({left:30})
          }
          .width("100%")
        }
        .layoutWeight(1)
        .margin({ left: 15, top: 12 })
        .alignItems(HorizontalAlign.Start)
        .justifyContent(FlexAlign.Start)
      }
    }
  }
}

更多关于HarmonyOS鸿蒙Next中如何延迟一秒后执行某项操作的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


setTimeout

api

在HarmonyOS鸿蒙Next中,延迟一秒后执行某项操作可以使用TaskDispatcherRunnable来实现。具体步骤如下:

  1. 获取TaskDispatcher实例。可以通过GlobalTaskDispatcherParallelTaskDispatcher来获取。
  2. 使用delay方法设置延迟时间,单位为毫秒。
  3. Runnable中定义需要延迟执行的操作。

示例代码如下:

import taskpool from '@ohos.taskpool';

// 获取全局任务分发器
let globalTaskDispatcher = taskpool.globalTaskDispatcher;

// 定义需要延迟执行的操作
let task = new taskpool.Task(() => {
    // 这里是延迟一秒后执行的操作
    console.log("延迟一秒后执行的操作");
});

// 延迟一秒后执行任务
globalTaskDispatcher.delay(task, 1000);

这段代码会在延迟一秒后执行task中的操作。delay方法的第二个参数是延迟时间,单位为毫秒,1000毫秒即为一秒。

在HarmonyOS鸿蒙Next中,可以使用TaskDispatcherdelayDispatch方法来实现延迟操作。以下是一个示例代码:

TaskDispatcher dispatcher = getUITaskDispatcher();
dispatcher.delayDispatch(() -> {
    // 这里放置需要延迟执行的操作
}, 1000); // 延迟1000毫秒(1秒)执行

这段代码会在1秒后执行Runnable中的任务。getUITaskDispatcher获取的是UI线程的任务分发器,确保操作在主线程执行。

回到顶部