最近在進行JNI編程的時候, 遇到了一個問題,就是關于AttachCurrentThread和DetachCurrentThread的。
網上很多的寫法是在創建的thread函式中呼叫了DetachCurrentThread。但是最近寫的代碼框架跟網上的不一樣, 代碼框架從上到下如下:
JAVA層 // JAVA函式
--------
JNI層 // 主要是實作JAVA與C++相互呼叫時,必須的一些函式
--------
C++層 // C++函式, 實作了從網路上收到資料后,把收到的資料發送給JAVA層的功能。
JAVA代碼:
接收收到的資料,并顯示
JNI代碼:
callback 函式, 傳遞給C++代碼, 用于C++代碼收到函式時使用該回呼函式。
在callback函式中, 使用AttachCurrentThread獲得了JNIENV, 然后傳遞給JAVA
C++代碼:
在這里創建了一個pthread, 然后收取資料, 收到資料后, 就呼叫JNI中的callback函式。
那么問題來了, 我DetachCurrentThread在哪里呼叫?? 因為我的執行緒是創建在最底層的C++層的, 并且這個是最為一個庫來編譯的。
請大牛們指導一下,謝謝
uj5u.com熱心網友回復:
有沒有能夠回答一下啊, 期盼中~~~轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/53265.html
標籤:Android
