如何在一个有返回值的方法中进行网络操作,然后返回网络操作后的值?
比如
private String A(){
StringRequest stringRequest=new StringRequest(Request.Method.POST, MyApplication.HOST + "/mobileLogin.do",
new Response.Listener<String>() {
@Override
public void onResponse(String s) {
sout("获取的"+s)
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError volleyError) {
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> map=new HashMap<>();
map.put("msgno","001010");
map.put("uid",s);
return super.getParams();
}
};
requestQueue.add(stringRequest);
}
我想返回这个获取的结果,但是volley的操作是在异步,根本没法return,那这个怎么办
巴扎黑2017-04-18 09:42:00
気が変わっても構いません。volley
で結果を返す必要はありません。リクエストが成功すると、結果は、たとえば List
を直接使用するか、クラスと組み合わせて保存することによりカプセル化され、Handler
メカニズムを通じてそこからデータと操作を取得できます。
ringa_lee2017-04-18 09:42:00
Rongyun を使用する場合、彼のメソッドで渡された stringId に従って、この ID を使用してサーバーからこの ID に対応する情報を取得する必要があるため、操作する方法がありません。まずはボレー
。RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
リーリーPHP中文网2017-04-18 09:42:00
Handler を直接使用できます
質問を読み直しましたが、ここでは RxAndroid の方が適していると思います。
リーリー