Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/195.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 代码在另一个线程中仍引发NetworkOnMainThread异常_Java_Android_Android Studio_Mobile - Fatal编程技术网

Java 代码在另一个线程中仍引发NetworkOnMainThread异常

Java 代码在另一个线程中仍引发NetworkOnMainThread异常,java,android,android-studio,mobile,Java,Android,Android Studio,Mobile,我的应用程序中有一个问题。 当我通过调试器启动应用程序时,它会抛出一个错误 NetworkOnMainThreadException。 更具体地说,在线程(非主线程)中连接到web服务器时会引发异常 com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java)。 因此,应用程序尝试在主线程上进行网络调用,但代码被另一个线程包围 有问题的代码位于从onResum

我的应用程序中有一个问题。 当我通过调试器启动应用程序时,它会抛出一个错误 NetworkOnMainThreadException。 更具体地说,在线程(非主线程)中连接到web服务器时会引发异常 com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java)。 因此,应用程序尝试在主线程上进行网络调用,但代码被另一个线程包围

有问题的代码位于从onResume调用的空白中。下面我附上我的代码

我已经尝试在另一个线程中围绕整个代码,但仍然是NetworkOnMainThread

final Runnable checker=new Runnable(){
@凌驾
公开募捐{
handler.removeCallbacks(null);
Thread Thread=新线程(new Runnable(){
@凌驾
公开募捐{
试一试{
URL端点=新URL(“####”);
httpsurl连接接头=
(HttpsURLConnection)endpoint.openConnection();//这里它抛出了提到的异常
如果(连接getResponseCode()==200){
InputStream响应=conn.getInputStream();
字符串结果=iStreamToString(响应);
if(UserIdResults.equals(“0”)){
handler.postDelayed(这个,5000);
}否则{
//做点什么
}
}
}捕获(例外e){
e、 printStackTrace();
}
}
});
thread.start();
}
};
处理者。延迟后处理(检查者,5000);

问题很可能是由以下线路引起的:

handler.postDelayed(this, 5000);
如前所述,
这个
指的是内部的
可运行的
(您表示为闭包的那个)。这会导致网络执行
Runnable
处理程序运行,当然,处理程序在主线程上运行

您可能打算运行
检查器
,在这种情况下,您应该使用
检查器
来代替