Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
Android 仅当上一个请求的响应从服务器返回时才调用新请求_Android - Fatal编程技术网

Android 仅当上一个请求的响应从服务器返回时才调用新请求

Android 仅当上一个请求的响应从服务器返回时才调用新请求,android,Android,我需要每隔5秒从服务器接收一个状态。我正在使用AsyncTask进行此操作 我每5秒使用一次请求 myListTimer = new Timer(); myListTimer.schedule(new TimerTask() { @Override public void run() { runOnUiThread(new Runnable() { @Override

我需要每隔5秒从服务器接收一个状态。我正在使用AsyncTask进行此操作

我每5秒使用一次请求

myListTimer = new Timer();
    myListTimer.schedule(new TimerTask() {
        @Override
        public void run() {

            runOnUiThread(new Runnable() {

                @Override
                public void run() {

                    updateMyList();

                }
            });

        }

    }, 0, 5000);
这里updateMyList方法调用AsyncTask,它工作正常。但有时由于网络问题,我并没有在5秒内得到响应,计时器再次请求新的响应。所以我想要的是,只有当服务器返回之前的响应时,它才会请求。如果之前的请求响应没有得到,那么它将不会请求新的响应

boolean receivedResponse = false;

myListTimer = new Timer();
    myListTimer.schedule(new TimerTask() {
        @Override
        public void run() {

            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    if (!receivedResponse) {
                        updateMyList();
                    }
                }
            });

        }

    }, 0, 5000);
在收到响应时调用的代码中将
receivedResponse
设置为true。

当您准备好下一个请求时,将其设置回false。

保存最后一个响应,然后在加载前一个响应失败时写入条件