Android Can't create handler inside thread that has not called Looper.prepare()错误解决方法
深山老妖浏览:6372019-03-12 07:52:04本文累计收益:0我也要赚钱

Error:Can't create handler inside thread that has not called Looper.prepare()

原代码:
//利用Handler消息传递机制
final Handler myHandler = new Handler(MainActivity.this.getMainLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0x123){
//置于此处有问题 (初步估计是线程间问题)
Toast toast = Toast.makeText(MainActivity.this, "祝您旅途愉快!", Toast.LENGTH_LONG);
toast.show();
}
}
};
//发送空消息
myHandler.sendEmptyMessage(0x123);

原因是此Handler没有Looper。主进程中有Looper,Context.getMainLooper()再看Handler的实例化时是可以指定Looper,最后代码如下

//利用Handler消息传递机制
final Handler myHandler = new Handler(MainActivity.this.getMainLooper()){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
if (msg.what == 0x123){
//置于此处有问题 (初步估计是线程间问题)
Toast toast = Toast.makeText(MainActivity.this, "祝您旅途愉快!", Toast.LENGTH_LONG);
toast.show();
}
}
};
//发送空消息
myHandler.sendEmptyMessage(0x123);

 

评论列表
发表评论
+ 关注