如何在Native侧释放ArkTS对象

如何在Native侧释放ArkTS对象


HarmonyOS
2024-03-17 12:50:16
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
put_get

​napi_wrap接口定义:

napi_wrap(napi_env env, napi_value js_object, void* native_object, napi_finalize finalize_cb, void* finalize_hint, napi_ref* result);

使用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-03-17 22:25:31
相关问题
Native释放ArkTS对象的方法
62浏览 • 1回复 待解决
如何在Native构建一个ArkTS对象
874浏览 • 1回复 待解决
arktshashmap转为native
501浏览 • 1回复 待解决
如何在Native获取APP版本信息
1051浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
1037浏览 • 1回复 待解决
如何在ArkTS中合并对象
313浏览 • 1回复 待解决
如何在ArkTS中合并对象
510浏览 • 1回复 待解决
Native调用ArkTS类函数
399浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS对象
968浏览 • 1回复 待解决
Native调用ArkTS的全局普通方法
424浏览 • 1回复 待解决
ArkTs怎么传递对象或者类给Native
1070浏览 • 1回复 待解决
Native如何打印char指针
791浏览 • 1回复 待解决
TS如何批量传递函数到native
431浏览 • 1回复 待解决