0

2つのプロセス"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

-最良のアプローチは、パッケージで使用することCountDownLatchですjava.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 に答える