Android异步任务onPostExecute。

5
在我的Android应用程序中,我使用AsyncTask从互联网下载图像。
我传递URL,我的AsyncTask进行下载。但是,如何将位图返回到我的活动中?目前,我将回调函数传递给我的异步任务构造函数,并在OnPostExecute中调用回调函数。这样做的方式正确吗?
3个回答

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

7

doInBackground方法返回的结果会传递到onPostExecute方法中,所以只需在doInBackground方法中简单地返回位图,并在onPostExecute方法中处理即可。


1

1
那段代码有缺陷,它没有在 onDestroy 中重置引用。 - mxk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接