在我的android應用程序中,我使用AsyncTask從互聯網下載圖像。異步任務android onPostExecute
我通過網址,我的AsyncTask做下載。但是,我如何將位圖返回到我的活動中。目前我將回調函數傳遞給我的asynctask構造函數,並在OnPostExecute中調用回調函數。這是做這件事的正確方法。
在我的android應用程序中,我使用AsyncTask從互聯網下載圖像。異步任務android onPostExecute
我通過網址,我的AsyncTask做下載。但是,我如何將位圖返回到我的活動中。目前我將回調函數傳遞給我的asynctask構造函數,並在OnPostExecute中調用回調函數。這是做這件事的正確方法。
你doInBackground
返回結果傳遞到onPostExecute
這麼簡單的回報,從位圖的方法doInBackground
和onPostExecute
處理。
回調函數可以正常工作,也可以傳入Activity或一個接口。要注意的關鍵是活動沒有改變或被破壞。
http://evancharlton.com/thoughts/rotating-async-tasks/在AsyncTasks上有一些很好的信息。
你可以做這樣的事情:
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;
}
}
代碼是有缺陷的,它不會重置'onDestroy'參考 – Matthias 2011-03-22 12:31:47