Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.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 在循环内等待方法完成执行_Java_Android - Fatal编程技术网

Java 在循环内等待方法完成执行

Java 在循环内等待方法完成执行,java,android,Java,Android,我有一个For循环,在这个循环中,我调用一个方法将图像上载到服务器,我面临的问题是,在某个限制下,服务器将强制停止打开的套接字,因此我必须立即上载每个图像 for (int i = 0; i < paths.size(); i++) { transferData(paths.get(i), i); } 如何等待方法完成执行,然后继续循环要等待循环,请使用以下代码: CountDownLatch latch=new CountDownLatch(1); for (int i =

我有一个For循环,在这个循环中,我调用一个方法将图像上载到服务器,我面临的问题是,在某个限制下,服务器将强制停止打开的套接字,因此我必须立即上载每个图像

for (int i = 0; i < paths.size(); i++) {
    transferData(paths.get(i), i);
}

如何等待方法完成执行,然后继续循环

要等待循环,请使用以下代码:

CountDownLatch latch=new CountDownLatch(1);

for (int i = 0; i < paths.size(); i++) {
    transferData(paths.get(i), i);
    try {
            latch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

}
当你的方法丰富到
latch.countDown()时您的循环将继续

请注意,您必须将循环放在除主线程之外的另一个线程中。

可能重复的@TheWander我认为它有点重复,但我希望循环在函数完成之前不增加,无论成功还是失败,这正是递归将得到的结果。@TheWander我将使用While循环进行尝试,并查看结果
CountDownLatch latch=new CountDownLatch(1);

for (int i = 0; i < paths.size(); i++) {
    transferData(paths.get(i), i);
    try {
            latch.await();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

}
latch.countDown();