在okhttp的callback回调中加Toast出现Cant create handler inside hread that has not called Looper.prepare()... - Go语言中文社区

在okhttp的callback回调中加Toast出现Cant create handler inside hread that has not called Looper.prepare()...


分析:callback中回调的response方法中还是在子线程中运行的,所以要调取Toast必须回到主线程中更新ui

解决方法:在调用Toast(或者AlertDialog)的地方的前面加上Looper.prepare(),后边加上Looper.loop()即可解决问题;也就是说用Looper.prepare()和Looper.loop()把Toast前后包起来。

 prepare方法是在子线程中new Looper,把Toast放进了队列之中,loop方法就会进入无限循环取值。

还一个方法就是开启一个onUiThread 或者异步消息handle 或者asyncTask

 

转载于:https://my.oschina.net/sully2bynnee/blog/865736

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_34281537/article/details/92639545
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 22:58:06
  • 阅读 ( 1043 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢