12

Android からの JNI 関数呼び出しに疑問があります。それらは Android アプリと同じスレッドで実行されますか? ネイティブ関数の実行に時間がかかる場合、UI はフリーズしますか?

4

2 に答える 2

16

JNI 呼び出しは同期的です。他の Java 呼び出しと同様に、スレッドを切り替えたり生成したりできますが、指定しなかった場合は同じスレッドで実行されます。したがって、UI スレッドから JNI 関数を呼び出すと、関数が戻るまでブロックされます。

于 2012-05-08T06:11:59.537 に答える
1

JNI 関数を呼び出すスレッドと同じスレッドで実行されている JNI 関数。

このように、サービスで新しいスレッド(スレッド A)を作成し、スレッド A で JNI 関数を呼び出すと、スレッド A で JNI が実行されているようです。

于 2012-05-08T06:20:31.603 に答える