在Native侧释放ArkTS对象的方法

在Native侧释放ArkTS对象的方法

HarmonyOS
2024-07-15 11:07:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
mzshj

使用napi_wrap接口时,如果最后一个参数result传递不为nullptr,则开发者需要在适当的时机调用napi_remove_wrap函数来主动删除创建的napi_ref对象。

用法1:当napi_wrap不需要接收创建的napi_ref时,可将最后一个参数传递为nullptr。这样创建的napi_ref是弱引用,由系统管理,不需要用户手动释放。

napi_wrap(env, jsobject, nativeObject, cb, nullptr, nullptr);

用法2:当napi_wrap需要接收创建的napi_ref时,将最后一个参数设为非nullptr。返回的napi_ref是强引用,需要开发者手动释放,否则可能导致内存泄漏。

napi_ref result;
napi_wrap(env, jsobject, nativeObject, cb, nullptr, &result);
// 当jsobject和result后续不再使用时,及时调用napi_remove_wrap释放result
napi_value result1;
napi_remove_wrap(env, jsobject, result1);
分享
微博
QQ
微信
回复
2024-07-15 19:36:50
相关问题
如何在Native释放ArkTS对象
2847浏览 • 1回复 待解决
Native调用ArkTS全局普通方法
1561浏览 • 1回复 待解决
arktshashmap转为native
1451浏览 • 1回复 待解决
如何在Native构建一个ArkTS对象
2811浏览 • 1回复 待解决
native如何跟ArkTS子线程通信
480浏览 • 1回复 待解决
Native调用ArkTS类函数
1542浏览 • 1回复 待解决
native如何使用类静态方法
1060浏览 • 1回复 待解决
native如何调用类静态方法
1381浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
2704浏览 • 1回复 待解决
Native如何调ArkTS方法
2712浏览 • 1回复 待解决
ArkTSNative分别如何动态加载SO库
3218浏览 • 1回复 待解决
HarmonyOS Native 实例化 ArkTS 对象
806浏览 • 1回复 待解决
Native进行跨模块加载
1176浏览 • 1回复 待解决