Android 4之後的版本如果要連Socket
要另外設一個thread去連,我也是這麼做
不過連好之後 主要的thread如何去取得資料?
例如我要用 readInt 和readUTF抓資料
我是在那個thread裡面設一個getInt()
在裡面寫tempInt=this.dis.readInt();
最後再return tempInt
所以主thread呼叫getInt() 就可以達到readInt的功能
我的作法是對的嗎?
不過我好像遇到一個問題
就是主thread呼叫getInt() 後再呼叫getUTF
會不會因為是不同thread的關系,所以連線的那個thread會先readUTF再readInt
因為我好像遇到這樣的狀況
多跑几次時,其中有几次readInt會得到奇怪的數字
我在猜可能是thread 其實先readUTF 所以才抓到怪數字
如果問題真的是這樣,要如何避免呢?
為避免說明不清 連結是我那個連線的thread的code
https://gist.github.com/anonymous/f5a6d8c906e17b3b9c72