2011-10-13 66 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繼續運行。