异步任务android onPostExecute

时间:2011-03-22 11:39:40

标签: android

在我的Android应用程序中,我使用AsyncTask从互联网下载图像。

我传递了url,我的AsyncTask进行了下载。但是我如何将位图返回到我的活动。目前我将回调函数传递给我的asynctask构造函数,并在OnPostExecute中调用回调函数。这是正确的方法。

3 个答案:

答案 0 :(得分:8)

您可以这样做:

public Bitmap btm;
public void onClick(View v) {
  new DownloadImageTask().execute("http://example.com/image.png");
}

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
     protected Bitmap doInBackground(String... urls) {
         return loadImageFromNetwork(urls[0]);
     }

     protected void onPostExecute(Bitmap result) {
         // set image for ImageView
         mImageView.setImageBitmap(result);
         // orsimply save it
         btm = result;
     }
 }

答案 1 :(得分:7)

您从doInBackground返回的结果会传递给onPostExecute,因此只需从doInBackground方法返回位图并在onPostExecute处理它。

答案 2 :(得分:1)

回调函数工作正常,您也可以传入Activity或接口。需要注意的关键是活动没有改变或被破坏。

http://evancharlton.com/thoughts/rotating-async-tasks/提供了有关AsyncTasks的一些很好的信息。