#鸿蒙通关秘籍#如何使用N-API延长对象的生命周期避免内存泄漏?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Y影刃EPC

要延长N-API对象的生命周期,可以通过创建napi_ref来实现。通过napi_create_reference创建的对象需要手动调用napi_delete_reference来释放。开发者可以借助如下方法将构造函数保存在napi_ref中:

cpp static napi_value TestDefineClass(napi_env env, napi_callback_info info) { napi_status status; napi_value result, return_value; napi_property_descriptor property_descriptor = { "TestDefineClass", NULL, TestDefineClass, NULL, NULL, NULL, napi_enumerable | napi_static, NULL};

NODE_API_CALL(env, napi_create_object(env, &return_value));

status = napi_define_class(NULL,
                           "TrackedFunction",
                           NAPI_AUTO_LENGTH,
                           TestDefineClass,
                           NULL,
                           1,
                           &property_descriptor,
                           &result);
SaveConstructor(env, result);

}

napi_status SaveConstructor(napi_env env, napi_value constructor) { return napi_create_reference(env, constructor, 1, &g_constructor); }

napi_status GetConstructor(napi_env env) { napi_value constructor; return napi_get_reference_value(env, g_constructor, &constructor); }

分享
微博
QQ
微信
回复
1天前
相关问题
如何使用AbilityStage生命周期函数
2499浏览 • 1回复 待解决