1

iOS は非同期メソッドを開始し、nsrunloop を使用してメイン スレッドで待機できます。

while(!iterationDone) { 
    [runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.5]]; 
    //do other stufff 
  } 

これにより、uithread は生き続けることができ、多くの非同期メソッドを呼び出すシーケンスを維持できます。同期メソッドのように簡単に呼び出すだけです。

 public int asyncmethod1{
        new Handler.post(new Runnable() { 
          @Override 
          public void run() { 
               // Do something on the UI-Thread 
             } 
          }); 
        //while(handler is end)
        //return the result 
 }
 public void main(){
    int i= asyncmethod1();
    i+=asyncmethod2();
 }

ただし、このメソッドは uithread が応答しない原因である必要があります。

4

1 に答える 1

0

Androidには、非同期タスクを処理し、UIスレッドで何かを実行するための2つの多くの概念があります。

1)ハンドラーhttp://developer.android.com/reference/android/os/Handler.html

new Handler.post(new Runnable() {
    @Override
    public void run() {
        // Do something on the UI-Thread
    }
});

2)AsyncTask

AsyncTaskを使用すると、UIスレッドを適切かつ簡単に使用できます。このクラスを使用すると、フレッドやハンドラーを操作しなくても、バックグラウンド操作を実行してUIスレッドで結果を公開できます。http://developer.android.com/reference/android/os/AsyncTask.html

AsyncTaskの使用例は、Androidの開発者サイトにあります。

于 2012-08-12T17:41:01.697 に答える