onCreate方法中的AsyncTask和setAdapter

Spr*_*dzy 4 android android-sdk-2.1 android-gridview android-asynctask

我正在做一些繁重的网络任务 - 下载图片(预览) - 为了我的主UI不被阻止它在AsyncTask中做了,我想把它们放在GridView中,但我在AsyncTask完成之前设置了适配器.有些代码会更有帮助

    public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.gridview);
            new LoadAllPictures().execute();
            GridView g = (GridView) findViewById(R.id.gridview);
            g.setAdapter(new ImageAdapter(this));
}
Run Code Online (Sandbox Code Playgroud)

所以最后Logcat显示所有内容都已下载但屏幕上没有任何内容.我尝试在AsyncTask中执行setAdapter部分,但它告诉我:Only the original thread that created a view hierarchy can touch its views.

我该怎么办 ?

kic*_*hik 6

AsyncTask有一个有用的方法可以实现命名onPostExecute().在任务完成后从原始UI线程调用它.您可以使用它从正确的线程设置适配器.