2012-11-22 4 views
1

가장 좋은 방법 또는 여러 번 AsyncTask를 한 번에 시작할 수있는 올바른 방법?여러 asynctask

new VoyAir().execute("http://"+objAcceso.IpPc+"/voya ir.php"); 
new Voy().execute("http://"+objAcceso.IpPc+"/voy.php"); 
new Vome().execute("http://"+objAcceso.IpPc+"/vome.php"); 
new gus().execute("http://"+objAcceso.IpPc+"/gus.php"); 

하지만 안드로이드 4.0.3 프로그래밍 해요 그것이 제대로 작동하지 : 양식을 다음과 같이

는 현재 실행. 이 작업을 수행하는 가장 좋은 방법의 예가 있습니까? 감사

+0

게시 한 코드의 문제점은 무엇입니까? 모든 작업이 실행됩니다 (순차적으로 4.0.3 인 경우) – zapl

답변

2

나는 관계없이 OS 버전 수행과 같은 코드를 사용하는 대신

new VoyAir().execute("http://"+objAcceso.IpPc+"/voya ir.php"); 

의,

public class WebnetMobileTools { 
    public static <P, T extends AsyncTask<P, ?, ?>> void executeAsyncTask(T task, P... params) { 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
      task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, params); 
     } else { 
      task.execute(params); 
     } 
    } 
} 

그것을 사용하려면 당신이

WebnetMobileTools.executeAsyncTask(new VoyAir(), 
        "http://"+objAcceso.IpPc+"/voya ir.php"); 

이 항상 실행 할 모든 변경 사항이 도입 된 Android 3.0까지 작동했던 것처럼 모든 병렬 작업이 비동기로 시작되었습니다.

+0

감사합니다. 매우 유용했습니다. –