ホームページ  >  に質問  >  本文

java - 如何在一个有返回值的方法中进行网络操作,然后返回网络操作后的值?

如何在一个有返回值的方法中进行网络操作,然后返回网络操作后的值?

比如

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,那这个怎么办
PHP中文网PHP中文网2741日前421

全員に返信(6)返信します

  • 黄舟

    黄舟2017-04-18 09:42:00

    インターフェースコールバックを使用できます

    1. 最初にインターフェースを宣言します

    リーリー
    1. の場合、メソッド内で

    を使用します リーリー

    返事
    0
  • PHPz

    PHPz2017-04-18 09:42:00

    RxJava または EventBus を使用します

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 09:42:00

    次に、非同期コールバック関数でそれを実行します。または、非同期リターンが発生するメソッドまたは関数を渡します。

    返事
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:42:00

    気が変わっても構いません。volley で結果を返す必要はありません。リクエストが成功すると、結果は、たとえば List を直接使用するか、クラスと組み合わせて保存することによりカプセル化され、Handler メカニズムを通じてそこからデータと操作を取得できます。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:42:00

    Rongyun を使用する場合、彼のメソッドで渡された stringId に従って、この ID を使用してサーバーからこの ID に対応する情報を取得する必要があるため、操作する方法がありません。まずはボレー

    RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {

    リーリー

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 09:42:00

    Handler を直接使用できます
    質問を読み直しましたが、ここでは RxAndroid の方が適していると思います。 リーリー

    まだ始めたばかりですが、書いたコードはあまりきれいではありません。 。 。専門家の指導を求めています

    返事
    0
  • キャンセル返事