解决方法如下:
类似错误分析:
错误信息:在Android开发中,如果在一个Thread中启动了一个ProgressDialog用来提示正在连接(也就是防假死),然后在Handler中dismiss()这个ProgressDialog,程序就直接挂掉,异常信息是:Can't create handler inside thread that has not called Looper.prepare()
原因分析:本人遇到的情况是在程序刚开始时候调用ProgressDialog提示正在连接(防假死调用),后边在连接成功后dismiss()这个ProgressDialog,如果有错误信息(比如连接失败呀什么的)则在线程中调用Toast提示,然后当程序运行到Toast的地方的时候程序就直接挂掉了
解决方法:在调用Toast(或者AlertDialog)的地方的前面加上Looper.prepare(),后边加上Looper.loop()即可解决问题;也就是说用Looper.prepare()和Looper.loop()把Toast前后包起来。
本文针对Android开发中出现的Can't create handler inside thread that has not called Looper.prepare()异常进行了详细的错误分析,并提供了解决方案。通过在调用Toast之前加入Looper.prepare(),并在之后加入Looper.loop(),可以有效避免该问题。
418

被折叠的 条评论
为什么被折叠?



