У меня есть модель, которая имеет метод setImgURL, когда вызов пользователя этот метод он сохраняет URL изображения и вызовите задачу асинхронной, чтобы загрузить изображение из URL и сохранить его в виде растрового изображенияДождитесь завершения асинхронного вызова при вызове метода getter?
public void setImgURL(String imgURL) {
this.imgURL = imgURL;
LoadImgFromURL().execute(getImgURL());
}
private AsyncTask<String, Void, Bitmap> LoadImgFromURL(){
return new AsyncTask<String, Void, Bitmap>() {
protected Bitmap doInBackground(String... urls) {
Bitmap mIcon11 = null;
Log.i(MainActivity.TAG,"Loading image");
String urldisplay = urls[0];
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
protected void onPostExecute(Bitmap result) {
setBitmap(result);
}
};
}
У меня есть еще один метод getBitmap, который просто возвращает растровое изображение
public Bitmap getBitmap(){
return bmImage;
}
возможно при вызове пользователем getBitmap он должен ждать, пока не завершится задача асинхронной ????
Dont выполнить Get() на UI потоке, то это будет в конечном итоге в НРУ. – marcinj
Я пробовал это, но не работал ... public Bitmap getBitmap() { async.get(); return bmImage; } –