本文主要是介绍android异常收集-Can't create handler inside thread that has not called Looper.prepare(),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
产生该问题原因:
1. 在线程中调用handler的sendMessage方法
2。AsyncTask中的doInBackground方法不可直接操作UI
解决方法:
在调用handler的方法前执行Looper.prepare()。Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用因为activity的主线程是自己创建消息队列的,所以在Activity中新建Handler时,不需要先调用Looper.prepare()。
因为activity的主线程是自己创建消息队列的,所以在Activity中新建Handler时,不需要先调用Looper.prepare()。
class LooperThread extends Thread{
public Handler mHandler;
public void run()
{Looper.prepare();mHandler = new Handler() { public void handleMessage(Message msg) { // process incoming messages here } };Looper.loop();}
这篇关于android异常收集-Can't create handler inside thread that has not called Looper.prepare()的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!