光阴似箭催人老,日月如移越少年。
首先這裡你訪問網路用的是非同步請求,那麼你呼叫的時候就不可能同步的拿到值。要嘛使用OKHTTP的同步存取網路的方式,網路存取完畢後才去回傳值,那麼就能拿到正確的值,要嘛就自己控制非同步時取得值,例如在網路請求結束後才去取得值,就是進入response後才去做操作。
這裡不直接寫內部類,而是讓當前類別繼承該接口,在重寫的方法中將值賦予當前類別的變數。這是我的想法
getAsyn方法從名字來看是一個非同步方法,你的getUrl在它收到回應之前就會返回,所以無法得到回應中的值。有2種解決方法:getAsyn方法从名字来看是一个异步方法,你的getUrl在它收到响应之前就会返回,所以无法得到响应中的值。有2种解决办法:
getAsyn
getUrl
看看OkHttpClientManager有没有同步方法
OkHttpClientManager
如果非要使用异步方法,可以在getUrl中发送异步请求之后用休眠或循环的方式等待,直到parseJson
parseJson
個人感覺1樓說的挺對的
首先這裡你訪問網路用的是非同步請求,那麼你呼叫的時候就不可能同步的拿到值。要嘛使用OKHTTP的同步存取網路的方式,網路存取完畢後才去回傳值,那麼就能拿到正確的值,要嘛就自己控制非同步時取得值,例如在網路請求結束後才去取得值,就是進入response後才去做操作。
這裡不直接寫內部類,而是讓當前類別繼承該接口,在重寫的方法中將值賦予當前類別的變數。這是我的想法
getAsyn
方法從名字來看是一個非同步方法,你的getUrl
在它收到回應之前就會返回,所以無法得到回應中的值。有2種解決方法:getAsyn
方法从名字来看是一个异步方法,你的getUrl
在它收到响应之前就会返回,所以无法得到响应中的值。有2种解决办法:看看
OkHttpClientManager
有没有同步方法如果非要使用异步方法,可以在
getUrl
中发送异步请求之后用休眠或循环的方式等待,直到parseJson
OkHttpClientManager
有沒有同步方法getUrl
中發送非同步請求之後用休眠或循環的方式等待,直到parseJson
有值再回傳。這樣其實是變相地把非同步變成同步了。 🎜🎜 🎜個人感覺1樓說的挺對的