C++中回调Java方法
https://blog.****.net/xiaoxiaoyusheng2012/article/details/56672173
Java调用C++代码的完美方法
JNI是Java与C++之间的桥梁,它们之间的层次关系如下图所示:
五、C++中回调Java方法(完美)
上述的回调是在一个线程栈中完成的,不能称为正真的回调。在后续学习实践中发现: JNIEnv *只在当前线程中有效,所以JNIEnv*不应该被缓存。可以缓存的是JavaVM*。另外,JNI中接口的参数都是局部引用,当该方法栈执行完毕,局部引用就会被销毁,因此即使要缓存JavaVM*,也应该将JavaVM*转换为全局引用再缓存。jobject也可以转换为全局引用后缓存。
这里讲的完美回调方法是:我们在C++层保存Java对象。具体做法就是将jobject转换为全局引用后缓存。
---------------------
作者:demystify
来源:****
原文:https://blog.****.net/xiaoxiaoyusheng2012/article/details/56672173
版权声明:本文为博主原创文章,转载请附上博文链接!