2012-07-19 20 views
1

활동이 표시된 후 일부 스크립트를 실행하려고하는데 웹에서 일부 이미지를로드하고 동적으로 활동에 표시하고 있습니다. 나는 여러 runnables를 실행하고 각 runnable은 Asynctask (이미지 읽기 및 ImageView에 할당, Image Views는 onCreate 함수에서 생성됨)를 호출하지만 모든 실행 파일 asynctasks가 완료된 후에 만 ​​활동이 표시됩니다.활동 후 코드 실행

나는이 목표를 달성하는 데 도움이되기를 바랍니다. 활동을 표시 한 다음 다른 이미지를 차례로 표시하는 것입니다.

public void onWindowFocusChanged(boolean hasFocus) { 
    super.onWindowFocusChanged(hasFocus); 

    if (!hasFocus) 
     return; 
    Handler h = new Handler(); 
    Runnable[] r; 
    int i = 0; 
    r = new Runnable[files.length]; 
    for (i = 0; i < files.length; i++) { 
     final int j = i; 
     r[i] = new Runnable() { 
      public void run() { 
       ViewGroup vg = (ViewGroup) findViewById(R.id.RootView); 

       Log.v("ASYNC", "Starting Call " + j); 
       // new BitmapWorkerTask().execute(img, i); 
       new BitmapWorkerTask(img, j).execute(); 
       vg.invalidate(); 
      } 
     }; 
     h.post(r[i]); 
     Log.v("ASYNC", "Posted " + i); 
    } 
    return; 
}; 
+0

몇 개의 이미지가 있습니까? 아마도 하나의 AsyncTask를 생성하여 이미지를 차례로 검색하려고 할 것입니다. – barry

+0

단일 AsyncTask를 사용하면 publishProgress()를 사용하여 방금 다운로드 한 이미지로 UI를 업데이트 할 수 있습니다. – barry

답변

0

onWindowFocusChanged(boolean hasFocus)Activity 라이프 사이클 메소드가 아닙니다. 대신 onCreate에서 작업을 해고해야합니다. 로드하는 데 시간이 오래 걸리면 진행률 회 전자를 표시 할 수 있습니다.