java.lang.RuntimeException: Can’t create handler inside thread that has not called Looper.prepare()
当在线程中创建Handler对象时会抛出此异常:
Runnable mainRun = new Runnable() {
@Override
public void run() {
handler = new Handler();
}
};
原因是 Handler的作用是把消息加入特定的(Looper)消息队列中,并分发和处理该消息队列中的消息。所以有Handler必须要有个Looper
解决办法:
1.缺少Looper我就给你在代码前后加入Looper
Runnable mainRun = new Runnable() {
@Override
public void run() {
Looper.prepare();
handler = new Handler();
Looper.loop();//必须,否则里面的代码段无效
}
};
2.调用主线程的Looper
Runnable mainRun = new Runnable() {
@Override
public void run() {
handler = new Handler(getMainLooper());
}
};