带有来自Java JNI的回调的C代码

时间:2014-07-21 15:55:33

标签: java c java-native-interface

我的C代码有一个init方法。在这个方法中,我注册了一些回调:

JNIEXPORT jboolean JNICALL
Java_a_b_D_connect(JNIEnv *env, jobject obj)
{
bool success &= txRegisterConnectionStateChangedHandler(hContext, &hConnectionStateChangedTicket, OnEngineConnectionStateChanged, NULL) == TX_RESULT_OK;
return success;
}

回调函数也在C代码中定义:

void TX_CALLCONVENTION OnEngineConnectionStateChanged(TX_CONNECTIONSTATE connectionState, TX_USERPARAM userParam)
{
// ... various case statements
}

从我的Java代码中,我调用了C connect方法。这很好,但问题是,我没有得到所有的回调,因为我的Java代码会在所有Java语句执行后终止。

如何更改此行为?我希望运行C代码ifinet,直到我终止它。

0 个答案:

没有答案