AsyncTask帮助需要理解

时间:2013-06-12 19:18:04

标签: java android android-asynctask

我在发布这篇文章之前已经进行了研究但是没有真正得到一个明确的答案所以我来到这里。在这些代码行中,我想了解它们究竟是做什么的。我来自cpp背景,这里的事情真的不同......

new DisplayImageFromURL((ImageView) findViewById(R.id.my_image))
                .execute("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg");

这段代码到底是做什么的?在我的代码中有一个私有类声明,但我不知道它传递给下一个类的信息。

 private class DisplayImageFromURL extends AsyncTask<String, Void, Bitmap> {
        ImageView bmImage;
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
            pd = new ProgressDialog(MainActivity.this);
            pd.setMessage("Loading...");
            pd.show();
        }
        public DisplayImageFromURL(ImageView bmImage) {
            this.bmImage = bmImage;
        }
        protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];
            Bitmap mIcon11 = null;
            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) {
            bmImage.setImageBitmap(result);
            pd.dismiss();
        }
    }
}

这段代码有什么作用?那个花括号在这里意味着什么?

public DisplayImageFromURL(ImageView bmImage) {
        this.bmImage = bmImage;
    }

最后一个......从哪里获得URl?

protected Bitmap doInBackground(String... urls) {
            String urldisplay = urls[0];

1 个答案:

答案 0 :(得分:0)

public DisplayImageFromURL(ImageView bmImage) {
this.bmImage = bmImage;
}

上面是这个类的构造函数。由于它是一种方法,花括号用于显示方法的开始和结束位置。

url是参数,它们是传递给execute方法的内容。

new DisplayImageFromURL((ImageView) findViewById(R.id.my_image))
.execute("http://www.tmonews.com/wp-content/uploads/2012/10/androidfigure.jpg");

AsyncTask参数,进度,结果