android okhttp 多线程,Android,okhttp_怎样才能在UI线程中等待okhttp返回结果才进行下一步,Android,okhttp,java - phpStudy...

本文探讨了如何在Android应用的`onCreate()`方法中,利用OkHttp进行网络请求,并确保UI线程在获取到响应结果后执行后续操作。作者详细展示了如何处理网络请求失败和成功情况,以及如何将响应值传递回主线程并触发相应的UI更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

在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线程的代码等待获取到这个值才继续执行

相关阅读:

mysql怎么修改约束啊

android谁要反馈源码啊?

使用 MPDF 将HTML转为PDF,然后将该PDF转为PNG图片的时候,中文报错... ...

rails里有像Django这样的模板继承吗?该怎么使用

Windows 为什么占用很多内存?

文章一键发布多家平台

为什么des加密后输出乱码?

我用blob存储的字符串,那读取的时候php怎么转化为字符串呢?

请问有没有用dva框架做的react的demo啊?

java自己写的工具类异常如何处理?

这种圆角应该怎么样算的

laravel5 模板变量不能解析

为什么我的grpc proto文件是这样的?

angularJS 中的ng-include路径里面可以放变量吗?为什么我写的不行?请帮忙看看!

java连接本机的sqlserver2008出现错误

这个vue.js的下拉选择框能否优化一下?

有没有兼容的js调用安卓、ios的拍照、录像、录音接口?

vueJS中watch的item值拿不到老数据

调用函数的时候加不加* 有什么区别?

JAVA通过LDAP做用户登录认证,怎么做业务的异常处理?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值