Android jni 创建线程

导入库:#include <thread>

获取javavm并保存为全局变量:

JavaVM *vm;
env->GetJavaVM(&vm);
GlobalConstants::vm = vm;

线程执行的方法:

void runThread(JNIEnv *env)
{
    jint res = GlobalConstants::vm->AttachCurrentThread(&env, NULL);
    if(res == 0)//0:success, negative:fail
    {
        for(int index = 0;index < 10;index++)
        {
            CommonTool::logcat_e("run ....");
            sleep(3);
        }

        GlobalConstants::vm->DetachCurrentThread();
    }
}

开始执行线程(非阻塞式)

thread pht(&runThread, env);
if(pht.joinable())
{
    pht.detach();
}

猜你喜欢

转载自blog.csdn.net/huangxiaohui123/article/details/82185127