diff --git a/build/third_party/flutter/BUILD.gn b/build/third_party/flutter/BUILD.gn index d565ada9..dbf07aa4 100644 --- a/build/third_party/flutter/BUILD.gn +++ b/build/third_party/flutter/BUILD.gn @@ -423,6 +423,7 @@ template("flutter_engine_shell") { "$flutter_root/engine/flutter/shell/platform/ohos/ace_vsync_waiter_embedder.cc", "$flutter_root/engine/flutter/shell/platform/ohos/ohos_shell_holder.cc", "$flutter_root/engine/flutter/shell/platform/ohos/ohos_surface_software.cc", + "$flutter_root/engine/flutter/shell/platform/ohos/platform_task_runner.cc", "$flutter_root/engine/flutter/shell/platform/ohos/platform_task_runner_adapter.cc", "$flutter_root/engine/flutter/shell/platform/ohos/platform_view_ohos.cc", ] diff --git a/frameworks/core/common/flutter/flutter_task_executor.cpp b/frameworks/core/common/flutter/flutter_task_executor.cpp index 59512c2f..c6b71285 100644 --- a/frameworks/core/common/flutter/flutter_task_executor.cpp +++ b/frameworks/core/common/flutter/flutter_task_executor.cpp @@ -27,6 +27,9 @@ #define FML_EMBEDDER_ONLY #endif #include "flutter/fml/message_loop.h" +#ifdef OHOS_STANDARD_SYSTEM +#include "flutter/shell/platform/ohos/platform_task_runner.h" +#endif #include "base/log/log.h" #include "base/thread/background_task_executor.h" @@ -89,8 +92,12 @@ FlutterTaskExecutor::~FlutterTaskExecutor() void FlutterTaskExecutor::InitPlatformThread() { +#ifdef OHOS_STANDARD_SYSTEM + platformRunner_ = flutter::PlatformTaskRunner::CurrentTaskRunner(); +#else fml::MessageLoop::EnsureInitializedForCurrentThread(); platformRunner_ = fml::MessageLoop::GetCurrent().GetTaskRunner(); +#endif #ifdef ACE_DEBUG FillTaskTypeTable(TaskType::PLATFORM);