HarmonyOS 从C++层触发通知到ArkTS层
实现了自研的har包,底层使用C++实现,上层也有ArkTS的实现。
当C触发arkTs的方法时,需要在C层缓存了napi_env,,然后通过异步任务 napi_create_async_work,napi_queue_async_work 将C的事件放到arkTs的线程中执行。同时C缓存了上层设置的回调对象,在异步任务的线程中,通过napi_get_named_property,napi_call_function 执行arkTs的方法。实现方法和这篇文章类似: https://blog.csdn.net/licui1000/article/details/134729566
Q:
- 上面的方法是否可行?
- C++层缓存的 napi_env 有可能失效吗,会进一步导致崩溃吗?
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS native C++ 层传递buffer 到ArkTS 层
13浏览 • 1回复 待解决
HarmonyOS ets层传递Array<string>到C++层,C++层如何获取数组内容
19浏览 • 1回复 待解决
HarmonyOS native层从C++到JS层传图片数据,过大失败
431浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
370浏览 • 1回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
932浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
359浏览 • 1回复 待解决
HarmonyOS 如何在ArkTS中向C++层注册回调,C++层如何调用回调方法?
194浏览 • 1回复 待解决
ArkTS注册后,C++启动的业务线程收到消息通知ArkTS层的一种思路
889浏览 • 1回复 待解决
有没有从ts设置回调到c++层,然后c++再回调到ts的示例代码?
997浏览 • 1回复 待解决
ArkTS 中的 HashMap 对象传给 C++ 层,如何转换?
222浏览 • 1回复 待解决
HarmonyOS commonEventManager 在C++层有接口吗?
3浏览 • 0回复 待解决
ts给c++传递数组,c++层如何解析
1902浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现
1011浏览 • 1回复 待解决
HarmonyOS C++层自定义组件如何开发?
322浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1027浏览 • 1回复 待解决
在ArkTS层往C++层注册一个object或function,C++层可以按需往这个回调上进行扔消息同步到上层应用么?
1870浏览 • 1回复 待解决
HarmonyOS native开发中如何传递map给c++层 / node-api层如何反射调用ArkTS对象
35浏览 • 1回复 待解决
HarmonyOS native层C++子线程中回调函数中调用ArkTS层中定义的类的public成员函数
40浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现?
800浏览 • 1回复 待解决
HarmonyOS开发c++层那里socket支持epoll方式吗?
380浏览 • 1回复 待解决
XComponent的onLoad和C++层的onSurfaceCreated的时序关系
1712浏览 • 0回复 待解决
HarmonyOS C++的异步通知如何回调给ArkTS的线程?
213浏览 • 1回复 待解决
HarmonyOS 有没有关于C++层的内存分析检测工具
55浏览 • 1回复 待解决
#鸿蒙通关秘籍# 在HarmonyOS NEXT中,如何通过NAPI接口实现ArkTS与Native C++层的业务协作?
101浏览 • 0回复 待解决
:
1.上面方法可行。
2.不会:因存储的是主线的env。备注:主线程的env,存储起来,没有问题,也能够在后续的调用中使用,但是,不能跨线程使用,跨线程使用会崩溃。其他线程的env不要缓存,如taskpool创建的线程在线程运行结束后,就会销毁,此时,存储的env不能再使用,使用会崩溃。