分析: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