在继续之前如何确定线程已完成?

How can I be sure a thread is complete before continuing?

我刚刚开始在 Android java 中使用线程。我正在从主 activity 启动一个线程,但在继续主逻辑流程之前我需要确保它已完成。

密码是:

    MyClass myclass = new MyClass();

       new Thread() {
           public void run() {
               myclass.myMethod();  // Do some work here

           }
       }.start();

// More work here which assumes myMethod() has completed

myMethod 中的工作涉及 url 调用,因此可能需要几秒钟,我需要确保它已完成才能继续。 有人可以建议最好的方法吗? 非常感谢

您可以使用 CountDownLatch:

CountDownLatch latch = new CountDownLatch(1); // create latch object with counter set to 1
new Thread() {
           public void run() {
               myclass.myMethod();  // Do some work here
               latch.countDown();  // decrement counter from 1 to 0
           }
       }.start();
latch.await();  // await until counter in latch reaches 0

您还应该考虑使用一些库来处理 Android 中的异步操作,例如 rxJava 或 AsyncTask。