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