0

我有两个进程“Loaddata(); Workoffline();”,现在我想要进程 Loaddata(); 运行直到完成,应用程序可以切换到下一个进程 Workoffline(); 。但我不知道该怎么办,期待人们帮助我。

public void test(){    
            runOnUiThread(new Runnable() {

                @Override
                public synchronized void run() {

                    loaddata();
                    //your UI interaction code here

                }
            });
            runOnUiThread(new Runnable() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    workoffline();
                }
            });
}
4

1 回答 1

0

-最好的方法是CountDownLatchjava.util.concurrent包装中使用。

-您可以使用CountDownLatch's方法countDown()通知完成loaddata(),然后使用await()方法允许执行workoffline()

-另一种方法是使用join()

例如:

Thread t1 = new Thread(new Runnable(){

public void run(){

    handler.post(new Runnable(){   // Declare the Handler handler = new Handler();
                                   // in onCreate()
          public void run(){

              loaddata();
        }

  });
}

});

t1.start();

try{
t1.join();
}catch(InterruptedException ex){

}


Thread t2 = new Thread(new Runnable(){

public void run(){

    handler.post(new Runnable(){

          public void run(){

               workoffline();

        }

  });
}

});

t2.start();
于 2012-12-24T02:31:23.380 回答