光阴似箭催人老,日月如移越少年。
首先这里你访问网络用的是异步请求,那么你调用的时候就不可能同步的拿到值。要么使用OKHTTP的同步访问网络的方式,网络访问完毕后才去返回值,那么就能拿到正确的值,要么就自己控制异步时获得值,比如在网络请求结束后才去获得值,就是进入response后才去做操作。
这里不直接写内部类,而是让当前类继承该接口,在重写的方法中将值赋予当前类的变量。这是我的想法
getAsyn方法从名字来看是一个异步方法,你的getUrl在它收到响应之前就会返回,所以无法得到响应中的值。有2种解决办法:
getAsyn
getUrl
看看OkHttpClientManager有没有同步方法
OkHttpClientManager
如果非要使用异步方法,可以在getUrl中发送异步请求之后用休眠或循环的方式等待,直到parseJson有值再返回。这样其实是变相地把异步变成了同步。
parseJson
个人感觉1楼说的挺对的
首先这里你访问网络用的是异步请求,那么你调用的时候就不可能同步的拿到值。要么使用OKHTTP的同步访问网络的方式,网络访问完毕后才去返回值,那么就能拿到正确的值,要么就自己控制异步时获得值,比如在网络请求结束后才去获得值,就是进入response后才去做操作。
这里不直接写内部类,而是让当前类继承该接口,在重写的方法中将值赋予当前类的变量。这是我的想法
getAsyn
方法从名字来看是一个异步方法,你的getUrl
在它收到响应之前就会返回,所以无法得到响应中的值。有2种解决办法:看看
OkHttpClientManager
有没有同步方法如果非要使用异步方法,可以在
getUrl
中发送异步请求之后用休眠或循环的方式等待,直到parseJson
有值再返回。这样其实是变相地把异步变成了同步。个人感觉1楼说的挺对的