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 线程上做一些事情。

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 允许正确和轻松地使用 UI 线程。此类允许在 UI 线程上执行后台操作并发布结果,而无需操作线程和/或处理程序。http://developer.android.com/reference/android/os/AsyncTask.html

AsyncTask 的使用示例位于 Android 的开发人员站点。

于 2012-08-12T17:41:01.697 回答