Android JNI函数在主线程上运行吗?

12

我对在Android中调用JNI函数有疑问。它们是否在与Android应用相同的线程上运行?如果本地函数需要更长时间运行,UI会冻结吗?

2个回答

16

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


1

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

如果您在服务中创建一个新线程(线程A),并在线程A中调用JNI函数,则JNI将在线程A中运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接