Can';t在android中创建线程内的处理程序
我试图在if条件下显示警报对话框 ObdGatewayService.java MainActivity.java 获取以下错误:Can';t在android中创建线程内的处理程序,android,handler,looper,Android,Handler,Looper,我试图在if条件下显示警报对话框 ObdGatewayService.java MainActivity.java 获取以下错误: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 您不能在后台线程上执行UI操作。非常感谢。现在它正在工作。 public void OBDreconnect() { if(!show_obd_rec
java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
您不能在后台线程上执行UI操作。非常感谢。现在它正在工作。
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", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, 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 );
}