мне нужно загрузить изображение из Интернета в моем приложении, я нашел хороший пример здесь, но я не могу понять, как использовать возвращаемый Bitmap в моей основной деятельности:Android AsyncTask, как вернуть результат?
класс:
public class GetImageFromServer extends AsyncTask<Void, Void, Bitmap {
private String sURL;
GetImageFromServer(String urlParam) {
sURL = urlParam;
}
@Override
protected Bitmap doInBackground(Void... urlParam) {
Bitmap bmp = null;
//ImageView img = (ImageView) findViewById(R.id.imageView1);
try {
URL url = new URL(sURL);
bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
} catch (Exception ex) {
Log.println(1, "Profile:getImg", ex.getMessage());
}
return bmp;
}
@Override
protected void onPreExecute() {}
}
И код MainActivity:
String urlImage = "http://www.xxxxxx.com/css/images/xxxxxx.png";
GetImageFromServer gifs = new GetImageFromServer(urlImage);
gifs.execute();
if(person.has("Avatar")) {Avatar.setImageBitmap(gifs.execute())}
ошибка:
gifs.execute()
Спасибо за помощь!
Добавить:
Я добавил это «отменить (правда)», потому что у меня есть проблемы с подключением к JSON веб-сервисов после severals запуска/отладки/близко, но я, кажется, не работает:
@Override
protected Bitmap doInBackground(String... urlParam) {
if (isCancelled())
this.cancel(true);
Bitmap b = null;........
и
@Override
protected void onPostExecute(Bitmap result) {
// use the result
mImageView.setImageBitmap(result);
this.cancel(true);
}
Могли assynctasks предотвратить мое приложение для подключения к моей веб-сервисов?
чек [это] (http://stackoverflow.com/questions/16752073/how-do- i-return-a-boolean-from-asynctask) – Blackbelt