如何在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对象的方法
513浏览 • 1回复 待解决
如何在Native构建一个ArkTS对象
2176浏览 • 1回复 待解决
arktshashmap转为native
996浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
2268浏览 • 1回复 待解决
ArkTSNative分别如何动态加载SO库
2507浏览 • 1回复 待解决
Native调用ArkTS类函数
995浏览 • 1回复 待解决
如何在Native获取APP版本信息
2323浏览 • 1回复 待解决
HarmonyOS Native 实例化 ArkTS 对象
192浏览 • 1回复 待解决
如何在ArkTS中合并对象
1601浏览 • 1回复 待解决
如何在ArkTS中合并对象
1090浏览 • 1回复 待解决
Native调用ArkTS的全局普通方法
930浏览 • 1回复 待解决
ArkTs怎么传递对象或者类给Native
2375浏览 • 1回复 待解决