Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 调用getter方法时是否等待async完成?_Android_Bitmap_Android Asynctask - Fatal编程技术网

Android 调用getter方法时是否等待async完成?

Android 调用getter方法时是否等待async完成?,android,bitmap,android-asynctask,Android,Bitmap,Android Asynctask,我有一个模型,它有一个方法setImgURL,当用户调用此方法时,它会保存图像url并调用异步任务从url加载图像并将其保存为位图图像 public void setImgURL(String imgURL) { this.imgURL = imgURL; LoadImgFromURL().execute(getImgURL()); } private AsyncTask<String, Void, Bitmap> LoadImgFromURL(){ ret

我有一个模型,它有一个方法setImgURL,当用户调用此方法时,它会保存图像url并调用异步任务从url加载图像并将其保存为位图图像

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);
      }
    };
}
public Bitmap getBitmap(){
        return bmImage;
}
当用户调用getBitmap时,是否可能等待异步任务完成???

是,可能:-)

AsyncTask有一个名为get()的方法-如果您首先执行任务,然后在需要的地方,对AsyncTask对象调用方法get(),则应用程序将等待任务完成,并调整返回类型的大小


我试过了,但没用。。。公共位图getBitmap(){async.get();返回bmImage;}