博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JNI调用,线程相关
阅读量:6157 次
发布时间:2019-06-21

本文共 972 字,大约阅读时间需要 3 分钟。

hot3.png

线程由C层pthread启动的,需要DetachCurrentThread。

JNIEnv *env; g_jvm->AttachCurrentThread(&env, NULL);  //必须AttachCurrentThread,env只能在自己的线程运行 jclass clazz = getObjectClass(env, g_monitorObj); jmethodID onLoginedMethod = getMethodID(env, clazz,"onLogStateChged","(ILjava/lang/String;)V"); jstring deviceId = (env)->NewStringUTF(TargDeviceID); env->CallVoidMethod(g_monitorObj, onLoginedMethod, CurState, deviceId); env->DeleteLocalRef(deviceId); g_jvm->DetachCurrentThread();

若由Java启动的,不需要DetachCurrentThread。

JNIEnv *env; g_jvm->AttachCurrentThread(&env, NULL);  //必须AttachCurrentThread,env只能在自己的线程运行 jclass clazz = getObjectClass(env, g_monitorObj); jmethodID onLoginedMethod = getMethodID(env, clazz,"onLogStateChged","(ILjava/lang/String;)V"); jstring deviceId = (env)->NewStringUTF(TargDeviceID); env->CallVoidMethod(g_monitorObj, onLoginedMethod, CurState, deviceId); env->DeleteLocalRef(deviceId); //g_jvm->DetachCurrentThread();

转载于:https://my.oschina.net/u/593225/blog/512209

你可能感兴趣的文章
c++书籍推荐
查看>>
互联网通用架构技术----缓存雪崩
查看>>
Dell R710服务器磁盘恢复数据库一例(记录)
查看>>
我的友情链接
查看>>
Ionic3 通讯录索引的实现
查看>>
轻松监听Azure service health 状态
查看>>
Matlab 进行FFT
查看>>
Eclipse 工作台用户指导>视图和编辑器
查看>>
项目常用的PHP代码
查看>>
Python自动化开发学习22-Django下(Form)
查看>>
算法-排序
查看>>
获取SQL SERVER某个数据库中所有存储过程的参数
查看>>
在Linux下编译安装Apache2(2)
查看>>
Method Swizzling 处理一类简单的崩溃
查看>>
AngularJS学习!
查看>>
在Eclipse中搭建Python Django
查看>>
struts国际化
查看>>
Laravel 5.0 - Middleware (中间件)
查看>>
文件特殊权限及facl
查看>>
我的友情链接
查看>>