2011-10-13 65 views
0

我有一个关于在Android NDK中对Java的JNI调用的基本问题。我在进行实际调用时没有问题,但是我不确定从C调用Java调用时是否阻塞。我的问题是具体判断在执行Java方法时c调用是否阻塞,或者是否立即返回。我问的原因是我将一个byteArray传递给Java,我怀疑Java是否在启动调用后才能访问它。原生Java调用的Android JNI块

回答

2

JNI调用就像正常的函数调用。当JNI调用(和Java函数)返回时,您的本机代码将继续运行。

+0

非常感谢您的回答! – Andy

+0

有没有办法让JNI Java方法阻止C++执行?是否有我忽略的替代工作流程?也许@dekz也有一些输入。 – StockB

0

你应该小心你选择的JNI调用,有些可能会阻塞。例如,获取指向字节数组的临界指针而不释放它可能会阻止jvm继续运行。