찾다

 >  Q&A  >  본문

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中文网2810일 전465

모든 응답(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
  • 취소회신하다