0

私は次のクラスを持っています:

class CargaImgsParaAmpliar extends AsyncTask<Void, Void, Bitmap> {

        final ProgressDialog progressDialog = new ProgressDialog(imagen.this);

        protected void onPreExecute() {
            progressDialog.setTitle("");
            progressDialog.setMessage("Cargando Imagen...");
            progressDialog.show();
        }

        protected Bitmap doInBackground(Void... params) {
            Bitmap mIcon1 = null;
            URL url_value;
            try {
                url_value = new URL(StrUrl);
                mIcon1 = BitmapFactory.decodeStream(url_value.openConnection().getInputStream());
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }           
            return mIcon1;
        }

        protected void onPostExecute(Bitmap imagen) {
            m_imageView.setImageBitmap(urlImageToBitmap(StrUrl));
            progressDialog.dismiss();
        }       
    }

AsyncTask 内でインターネット放電プロセスを実行していますが、それでも例外が発生しますandroid.os.NetworkOnMainThreadException

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

urlImageToBitmapネットワークにアクセスしているように見えますが、 onPostExecute(UIタスクで実行される)から実行されます。

imagenそして、あなたはのパラメータで何もしていないようですonPostExecute。したがって、で取得された画像doInBackgroundは基本的に失われます。

于 2012-07-26T18:55:37.243 に答える