如何在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对象
204浏览 • 1回复 待解决
如何在Native获取APP版本信息
215浏览 • 1回复 待解决
ArkTSNative如何进行map数据交互
210浏览 • 1回复 待解决
如何在C/C++ 创建ArkTS对象
271浏览 • 1回复 待解决
ArkTs怎么传递对象或者类给Native
289浏览 • 1回复 待解决
Native如何打印char指针
198浏览 • 1回复 待解决
Native如何引入头文件deviceinfo.h
216浏览 • 1回复 待解决
Native如何获取可操作的文件目录
163浏览 • 1回复 待解决
Native如何使用hilog打印出日志信息
182浏览 • 1回复 待解决
Native如何ArkTS的方法
267浏览 • 1回复 待解决
Native如何集成三方SO库
188浏览 • 1回复 待解决
Native创建线程是否有限制
239浏览 • 1回复 待解决
ArkTSNative如何动态加载、卸载so
222浏览 • 1回复 待解决