1

我正在尝试在显示活动后运行一些脚本。我正在从网络上加载一些图像并在活动中动态显示它们。我正在运行多个可运行对象,每个可运行对象调用一个Asynctask(读取图像并分配给ImageView,图像视图在onCreate函数中创建),但只有在所有可运行对象异步任务完成后才会显示活动。

我希望你能帮助我实现这一目标。我正在寻找的是显示活动,然后一个接一个地加载和显示图像。

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;
};
4

1 回答 1

0

onWindowFocusChanged(boolean hasFocus)不是Activity生命周期方法。相反,您应该开始执行任务onCreate。如果加载需要很长时间,那么您可以显示某种进度微调器。

于 2012-07-19T23:16:44.820 回答