如何解决无法在android中的线程内创建处理程序
我正在尝试在if条件下显示警报对话框。
ObdGatewayService.java
public class ObdGatewayService{
if(e.getMessage().equals("broken pipe")){
((MainActivity) ctx).OBDreconnect();
}
}
MainActivity.java
public void OBDreconnect() {
if(!show_obd_reconnect_dialog) {
AlertDialog.Builder build = new AlertDialog.Builder(this);
build.setMessage(R.string.obd_losted)
.setCancelable(false)
.setPositiveButton("Reconnect",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
startLiveData();
}
})
.setNegativeButton("Exit",int id) {
finish();
}
});
show_obd_reconnect_dialog = true;
build.show();
}
}
在下面出现错误:
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
解决方法
if(e.getMessage().equals("Broken pipe")){
Handler handler = new Handler(Looper.getMainLooper());
handler.postDelayed(new Runnable() {
@Override
public void run() {
((MainActivity) ctx).OBDreconnect();
}
},0 );
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。