AsyncTask简易使用

实现了在ImageView显示一张图片。

package cim.itfanr.showImage;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.http.HttpConnection;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.ImageView;

public class DownloadAsyncTask extends AsyncTask<String , Void , Bitmap> {

	private ImageView imageView ; 
	
	public DownloadAsyncTask(ImageView imageView  ){
		this.imageView = imageView ;
	}

	@Override
	protected void onPreExecute() {
		// TODO Auto-generated method stub
		Log.i("showImage", "onPreExecute ----- " + Thread.currentThread().getName()) ;
		super.onPreExecute();
	}

	 @Override
	protected Bitmap doInBackground(String... params) {
		// TODO Auto-generated method stub
		 try {
			URL url = new URL(params[0] ) ;
			try {
				HttpURLConnection  conn = (HttpURLConnection)url.openConnection() ;
				InputStream input = conn.getInputStream() ;
				return BitmapFactory.decodeStream(input) ;		
						
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		 Log.i("showImage", "doInBackground ----- " + Thread.currentThread().getName()) ;
		return null;
	}

	@Override
	protected void onPostExecute(Bitmap result) {
		// TODO Auto-generated method stub
		imageView.setImageBitmap(result) ;
		Log.i("showImage", "onPostExecute ----- " + Thread.currentThread().getName()) ;
		super.onPostExecute(result);
	}
	
	

}

在Activity中实例化DownloadAsyncTask即可。

package cim.itfanr.showImage;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ImageView;


public class MainActivity extends Activity {
	private ImageView imageView ;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imageView = (ImageView) findViewById(R.id.imageView) ;
        DownloadAsyncTask downloadAsyncTask = new DownloadAsyncTask(imageView) ;
        downloadAsyncTask.execute("http://static.oschina.net/uploads/user/585/1171834_100.jpg") ;
    }
 
}

效果图:

AsyncTask简易使用

你可能感兴趣的:(AsyncTask)