如何在一个有返回值的方法中进行网络操作,然后返回网络操作后的值?
比如
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,那这个怎么办
インターフェースコールバックを使用できます
リーリー最初にインターフェースを宣言します
を使用します リーリーの場合、メソッド内で
RxJava または EventBus を使用します
次に、非同期コールバック関数でそれを実行します。または、非同期リターンが発生するメソッドまたは関数を渡します。
気が変わっても構いません。
volley
で結果を返す必要はありません。リクエストが成功すると、結果は、たとえばList
を直接使用するか、クラスと組み合わせて保存することによりカプセル化され、Handler
メカニズムを通じてそこからデータと操作を取得できます。Rongyun を使用する場合、彼のメソッドで渡された stringId に従って、この ID を使用してサーバーからこの ID に対応する情報を取得する必要があるため、操作する方法がありません。まずはボレー
。RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {
リーリーHandler を直接使用できます
まだ始めたばかりですが、書いたコードはあまりきれいではありません。 。 。専門家の指導を求めています質問を読み直しましたが、ここでは RxAndroid の方が適していると思います。 リーリー