NetworkOnMainThreadException,使用Handler执行http请求还是失败,但用Thread的方式可以

m0_37837425 2019-06-14 02:25:54
大家好,我使用Okhttp3请求,但报android.os.NetworkOnMainThreadException,然后我使用Handler来上传,但还是报同样的错。
但用new Thread的方式可以,这是怎么回事呢?
...全文
111 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
gxh_apologize 2019-06-14
  • 打赏
  • 举报
回复
网络请求操作要放在子线程里面。更新UI要在主线程里面,两者的通信可以使用Handler
jklwan 2019-06-14
  • 打赏
  • 举报
回复
Handler.post(Runnable r)这个方法看看注释说明

Causes the Runnable r to be added to the message queue.
The runnable will be run on the thread to which this handler is attached. 
就是说,这个开启的runnable会在这个handler所依附线程中运行,如果handler是在UI线程中创建的,所以就在主线程中运行了。
m0_37837425 2019-06-14
  • 打赏
  • 举报
回复
handler.post(new Runnable() { public void run() { //图片上传,但还是报android.os.NetworkOnMainThreadException } });

80,352

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧