在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前后包起来。