您的位置:首页 > 移动开发 > Android开发

Android开发报错 Can't create handler inside thread that has not called Looper.prepare()

2016-08-01 16:11 645 查看
原因分析:在线程中调用了Toast(或者Dialog提示)。

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

Looper.loop()会死循环堵塞线程

其他解决方案:

在主线程中定义handler,

然后在子线程中用handler.post如下:

new Runnable(){
@Override
public void run() {
mHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(mApp.getApplicationContext(),"服务器异常,请稍后重试",Toast.LENGTH_SHORT).show();
}
});
}
}.run();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐