1
我試圖在活動顯示後運行一些腳本,我從網絡加載一些圖像並動態地在活動中顯示它們。我正在運行多個runnables,每個可運行的調用一個Asynctask(閱讀圖像並分配給ImageView,圖像視圖是在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;
};
有多少圖像?我可能傾向於產生一個AsyncTask來一個接一個地檢索圖像。 – barry 2012-07-19 22:46:17
使用一個AsyncTask,你可以使用publishProgress()來更新剛下載的圖像的UI, – barry 2012-07-20 12:21:24