HarmonyOS 鸿蒙Next Native子线程切回主线程 传递的env是否会变化

发布于 1周前 作者 bupafengyu 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Native子线程切回主线程 传递的env是否会变化 Native子线程切回主线程:传递的env是否会变化?

3 回复

您好,经确认,env和线程绑定的,并不会因为页面发生变化而变化,env它是js运行环境上下文,类似context。

更多关于HarmonyOS 鸿蒙Next Native子线程切回主线程 传递的env是否会变化的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


一般情况下 env 禁止在线程间传递。

在HarmonyOS(鸿蒙)系统中,当在Next Native子线程中需要切回主线程时,传递的env(通常指的是JNI环境指针)可能会发生变化。这是因为JNI环境指针是与特定线程绑定的,每个线程在调用JNI函数时都会获得一个独立的JNI环境。

在子线程中创建的env与主线程中的env不是同一个实例。因此,如果你需要在子线程中将数据或消息传递给主线程,并希望使用JNI环境进行操作,你不能直接将子线程中的env传递给主线程使用。

正确的做法是使用鸿蒙提供的线程间通信机制(如消息队列、Handler等)来在主线程和子线程之间传递数据。在主线程中接收到数据后,主线程可以安全地使用自己的JNI环境指针env来进行相应的JNI调用。

简而言之,Next Native子线程中的env与主线程中的env不是共享的,也不应该被直接传递使用。应该通过适当的线程间通信方式来传递数据,并在目标线程中使用该线程自己的JNI环境。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html。

回到顶部