12

我对从 Android 进行的 JNI 函数调用有疑问。它们是否与 Android 应用程序在同一线程上运行?如果本机功能需要更多时间运行,UI 会冻结吗?

4

2 回答 2

16

JNI 调用是同步的,就像任何其他 Java 调用一样,您可以切换或生成线程,但如果您没有指定它,它们将在同一个线程上执行。所以如果你从 UI 线程调用一个 JNI 函数,它将被阻塞,直到函数返回。

于 2012-05-08T06:11:59.537 回答
1

JNI 函数与调用 JNI 函数的人在同一线程中运行。

看起来是这样的,如果你在一个服务中创建一个新的 Thread(Thread A),并在 Thread A 中调用了一个 JNI 函数,那么 JNI 就运行在 Thread A 中。

于 2012-05-08T06:20:31.603 回答