为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕无忌1623718 2019-03-21 18:15:52
如何在一个有返回值的方法中进行网络操作,然后返回网络操作后的值?比如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,那这个怎么办
查看完整描述

6 回答

?
牧羊人nacy

TA贡献1862条经验 获得超7个赞

上RxJava或者EventBus


查看完整回答
反对 回复 2019-04-22
?
慕妹3242003

TA贡献1824条经验 获得超6个赞

那就在异步回调函数里做。或者在异步返回的地方传入方法或者传入函数。


查看完整回答
反对 回复 2019-04-22
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

你可以换种思路,不需要再volley中返回结果。当请求成功后对结果进行封装,例如直接使用List或者结合类进行存储,然后可以通过Handler机制从中获取数据与操作。


查看完整回答
反对 回复 2019-04-22
?
慕后森

TA贡献1802条经验 获得超5个赞

我是使用融云的时候需要用户信息提供者,根据他的方法传过来的stringId,我再使用这个id从我的服务器获取这个id对应的信息,,,所以没办法先操作volley,


RongIM.setUserInfoProvider(new RongIM.UserInfoProvider() {


        @Override

        public UserInfo getUserInfo(final String s) {


           volley操作,需要使用到s


查看完整回答
反对 回复 2019-04-22
  • 6 回答
  • 0 关注
  • 665 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信