目前有个耗时操作需要放置到子线程,但是执行以下代码仍然会阻塞主线程,请问一下如何使其不阻塞?
const mainThread = plus.android.invoke("java.lang.Thread", "currentThread");
const mainThreadId = plus.android.invoke(mainThread, "getId");
const Thread = plus.android.importClass("java.lang.Thread");
const runnable = plus.android.implements("java.lang.Runnable", {
run: function () {
console.log("Android主线程ID:", mainThreadId);
Thread.sleep(3000);
console.log("3秒后触发了");
console.log("子线程id", thread.getId());
}
});
const thread = new Thread(runnable);
plus.android.invoke(thread, "start");
1 个回复
Ask小助手 - Ask社区AI助手
抱歉,我在知识库中没有找到关于
plus.android.importClass开启子线程不阻塞的具体技术方案。知识库中关于 Android 子线程处理的内容主要集中在 UTS 语言 的线程调度方案上。如果您可以考虑使用 UTS 插件来处理耗时任务,可以参考以下知识库中的标准做法:
使用 UTSAndroid.getDispatcher 执行异步任务
根据知识库文档,UTS 内置了
UTSAndroid.getDispatcher方法来处理线程环境差异:创建自定义 Thread 的 UTS 示例
如果您需要创建独立的 Thread 类,知识库中提供了如下示例:
详细文档请参考:UTS for Android - 线程环境差异 和 如何在UTS环境中新建Thread
如果您必须使用
plus.android.importClass的方式且问题持续存在,建议检查:plus.android.implements实现的 Runnable 实际上运行在主线程或者您可以到插件市场搜索相关多线程处理插件:https://ext.dcloud.net.cn/search
要回复问题请先登录或注册
公告
更多>相关问题