您的位置:首页 > 移动开发 > Android开发

Android JNI判断当前是否附着于Main Thread

2016-11-14 20:06 197 查看
在Android开发中,工作线程中是不能直接操作Main Thread,但在JNI开发时,回调接口时,是不知道由线程还是main thread触发。因此,需要在接口中作判断:

JNIEnv *env = NULL;

if ((*g_jvm)->GetEnv(g_jvm, (void *) &env, JNI_VERSION_1_6) == JNI_EDETACHED) {
// detached
(*env)->CallVoidMethod(env, g_obj, on_cb_id);
(*g_jvm)->DetachCurrentThread(g_jvm);
} else {
// attached
}

ref:
http://docs.oracle.com/javase/7/docs/technotes/guides/jni/spec/invocation.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: