在我的应用程序中,我在 asynctask 中从互联网获取天气信息,但有时服务器有点滞后,我想在请求之间等待 10 秒,最多发出 10 个请求(如果之前的请求不成功)。但是当我让我的 asynctask 等待 10 秒(建模没有响应服务器)时,主线程(用户界面)冻结,直到 asynctask 完成它的工作(发出 10 轮请求)。
这是我制作和执行 asynctask 的代码
WeatherGetter wg = new WeatherGetter();
wg.execute(url);
try {
weather = wg.get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
这就是我让它等待的地方
if (cod != 200) {
synchronized (WeatherGetter.this) {
try {
WeatherGetter.this.wait(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}