在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对象
2198浏览 • 1回复 待解决
Native调用ArkTS全局普通方法
741浏览 • 1回复 待解决
如何在Native构建一个ArkTS对象
1956浏览 • 1回复 待解决
arktshashmap转为native
795浏览 • 1回复 待解决
Native调用ArkTS类函数
803浏览 • 1回复 待解决
native如何使用类静态方法
704浏览 • 1回复 待解决
native如何调用类静态方法
965浏览 • 1回复 待解决
Native如何调ArkTS方法
2017浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
2042浏览 • 1回复 待解决
ArkTSNative分别如何动态加载SO库
2249浏览 • 1回复 待解决
Native进行跨模块加载
641浏览 • 1回复 待解决
ArkTs怎么传递对象或者类给Native
2097浏览 • 1回复 待解决
ArkTS层获取对象所有方法
1258浏览 • 1回复 待解决
native创建file并保存进沙箱路径
947浏览 • 1回复 待解决
Native如何集成三方SO库
2001浏览 • 1回复 待解决