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 层
578浏览 • 1回复 待解决
HarmonyOS native层从C++到JS层传图片数据,过大失败
706浏览 • 1回复 待解决
HarmonyOS ets层传递Array<string>到C++层,C++层如何获取数组内容
475浏览 • 1回复 待解决
将C++层分配的对象在ArkTS层管理,ArkTS层通过接口访问C++层对象业务
1283浏览 • 1回复 待解决
ArkTS层通过接口访问C++层对象
806浏览 • 1回复 待解决
c/c++层主动调用ArkTS存在问题
1099浏览 • 1回复 待解决
HarmonyOS C++通过OHAudio录制音频想回调数据到ArkTS层
275浏览 • 1回复 待解决
HarmonyOS 如何在ArkTS中向C++层注册回调,C++层如何调用回调方法?
915浏览 • 1回复 待解决
HarmonyOS ETS和c++层通信
479浏览 • 1回复 待解决
HarmonyOS C++子线程调用ArkTS业务层接口方法
480浏览 • 1回复 待解决
ArkTS注册后,C++启动的业务线程收到消息通知ArkTS层的一种思路
1260浏览 • 1回复 待解决
有没有从ts设置回调到c++层,然后c++再回调到ts的示例代码?
1400浏览 • 1回复 待解决
ArkTS 中的 HashMap 对象传给 C++ 层,如何转换?
645浏览 • 1回复 待解决
HarmonyOS ArkTS侧创建播放窗口后,C++层如何获取surface
373浏览 • 1回复 待解决
ts给c++传递数组,c++层如何解析
2256浏览 • 1回复 待解决
在ArkTS层往C++层注册一个object或function,C++层可以按需往这个回调上进行扔消息同步到上层应用么?
2109浏览 • 1回复 待解决
HarmonyOS commonEventManager 在C++层有接口吗?
375浏览 • 1回复 待解决
HarmonyOS native开发中如何传递map给c++层 / node-api层如何反射调用ArkTS对象
534浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现
1266浏览 • 1回复 待解决
通过Native 调用c++层实现文本绘制
1501浏览 • 1回复 待解决
如果需要NAPI C++层业务,调用 ArkTS层的类静态成员、静态函数,怎么交互实现?
1006浏览 • 1回复 待解决
HarmonyOS C++层自定义组件如何开发?
757浏览 • 1回复 待解决
HarmonyOS C++ 调用 ets 层函数报错闪退
513浏览 • 1回复 待解决
HarmonyOS C++层如何同步调用JS函数 -
395浏览 • 0回复 待解决
HarmonyOS native层C++子线程中回调函数中调用ArkTS层中定义的类的public成员函数
532浏览 • 1回复 待解决
:
1.上面方法可行。
2.不会:因存储的是主线的env。备注:主线程的env,存储起来,没有问题,也能够在后续的调用中使用,但是,不能跨线程使用,跨线程使用会崩溃。其他线程的env不要缓存,如taskpool创建的线程在线程运行结束后,就会销毁,此时,存储的env不能再使用,使用会崩溃。