Harmonyos 中 view.postDelayed(Runnable action, long delayMillis) 的等价物是什么?

Shi*_*war 5 java android huawei-mobile-services huawei-developers harmonyos

我正在使用 Java SDK 在 HarmonyOS 中创建一个自定义组件,我必须在组件实例延迟一段时间后执行一些任务。

在Android中,我们在View类中有postDelayed(Runnable action, long delayMillis)方法。所以我们可以通过如下方式实现上述要求

view.postDelayed(runnable, 100);
Run Code Online (Sandbox Code Playgroud)

但是,在HMOS java SDK中,我看到组件类中没有任何可用于延迟的api 。

所以,我的问题是

Harmonyos 中的 view.postDelayed(Runnable action, long delayMillis) 相当于什么?

小智 2

目前HarmonyOS没有提供View.postDelayed(..)的确切替代方案,您可以使用ohos.eventhandler.EventHandler API实现类似的 UI post 功能,示例用法如下

 EventHanlder eventhandler = new EventHandlder(EventRunner.getMainEventRunner());
 eventhandler.postTask(runnable, timeInMillis);
Run Code Online (Sandbox Code Playgroud)

  • **注意:** 如果您像这样创建 EventRunner 实例 `EventRunner eventRunner = EventRunner.create();` 那么,您的应用程序将因 **尝试在非 UI 线程中更新 UI** 错误而崩溃。所以请认真做。可能此评论对其他人有帮助。 (2认同)