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

怎样才能在UI线程中等待okhttp返回结果才进行下一步

怎样才能在UI线程中等待okhttp返回结果才进行下一步

宝慕林4294392 2019-03-30 18:14:16
在onCreate()方法中的代码如下:kHttpClient mOkHttpClient = new OkHttpClient();RequestBody mRequestBody = new FormBody.Builder().add("imei",imei).build();        Request mRequest = new Request.Builder().post(mRequestBody).url(url).build();        mOkHttpClient.newCall(mRequest).enqueue(new Callback() {            @Override            public void onFailure(Call call, IOException e) {                e.printStackTrace();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                if (response.code() == 404){                    Log.d(logTag,"请求缺少IMEI参数");                }                else if (response.code() == 405){                    Message message = new Message();                    message.what = 3;                    handler.sendMessage(message);                }else if (response.body().string() == "IMEIForbidden"){                    Message message = new Message();                    message.what = 4;                    handler.sendMessage(message);                }                String version = response.body().string();            }        });        我想要的逻辑是这样的:从一个URL接口中获取一个String值(上述代码中的version),获取到version值后再去调用下一个接口。在安卓中网络请求得开线程,所以就用了okhttp的enqueue方法,可是在这个方法中获取到的response值,怎么传递到UI线程中呢,并且让UI线程的代码等待获取到这个值才继续执行
查看完整描述

6 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

//方法一

message.obj = version;


//方法二

Bundle bundle = new Bundle();

bundle.putCharSequence("你的KEY",version);

message.setData(bundle);


//UI里的handle里面用

Bundle bundle = message.getData();

String version = bundle.getCharSequence("你的KEY");


//或者直接

String version = message.getData().getCharSequence("你的KEY");


//当然,注意判空哦


查看完整回答
反对 回复 2019-04-24
?
Smart猫小萌

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

你请求到数据后直接把version 用msg.obj=version装进去,然后在OnCreate中handleMessage(Message msg)获取version再继续异步请求数据就可以啦啊


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

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号